我希望制作标记扩展来简化绑定。 我有一个字典,将该属性绑定到视图中的标签上。 我有一个ValueConverter,它使用这个字典,并传递一个字符串作为ConverterParameter,然后找到
。<Label Text="{Binding Tanslations,Converter={StaticResource TranslationWithKeyConverter}, ConverterParameter='Test'}"/>
但是我需要为不同的标签做相同的事情,只是键(转换器参数)不同,其他内容都相同
我想要一个标记扩展,使我能够这样写:
<Label Text="{local:MyMarkup Key=Test}"/>
这个标记应该生成到名为“Translations”的属性绑定,使用TranslationWithKeyConverter的值转换器和ConverterParameter参数,并且其值为Key。
我试过了,但它没有起作用:
public class WordByKey : IMarkupExtension
{
public string Key { get; set; }
public object ProvideValue(IServiceProvider serviceProvider)
{
return new Binding("Tanslations", BindingMode.OneWay, converter: new TranslationWithKeyConverter(), converterParameter: Key);
}
}