我正在尝试添加资源,这是一个标准的IValueConverter实例。我想在XAML中使用该转换器,但我得到的只是一个例外,说没有找到带有提供密钥的资源。
这是代码:
public CallLogs(IMessenger messenger, IKernel kernel)
{
InitializeComponent();
_kernel = kernel;
var phoneToContactConverter = _kernel.Get<PhoneNumberToContactConverter>();
Resources.Add("PhoneNumberToContactConverter", phoneToContactConverter);
}
这是XAML
<TextBlock Text="{Binding Number, Converter={StaticResource PhoneNumberToContactConverter}, ConverterParameter={Binding}}" />
我得到一个例外
{“找不到名为'PhoneNumberToContactConverter'的资源。资源 名称区分大小写。“}。
知道如何从代码中引用资源吗?
感谢。
答案 0 :(得分:4)
我目前无法访问C#编译器,因此无法尝试,但尝试在添加资源后移动InitializeComponent()。 InitializeComponent执行XAML中指定的所有内容,但此时绑定的资源不存在。
答案 1 :(得分:0)
您好,您可以尝试动态资源(类型资源不匹配)
<TextBlock Text="{Binding Number, Converter={DynamicResource PhoneNumberToContactConverter}, ConverterParameter={Binding}}" />