c# - IValueConverter 作为对象返回而不是预期的值
问题描述
我正在尝试将标签(或任何东西)上的字符串转换为另一个字符串。这适用于图标字体。
转换器
[ValueConversion(typeof(string), typeof(string))]
public class StringToIconConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string property = ((string)value).ToLower();
switch (property)
{
case "maximize": return @"\e901";
default return property;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return DependencyProperty.UnsetValue;
}
...
}
然后我将它添加到需要它的页面中
<Helpers:StringToIconConverter x:Key="Icon" />
这就是我设置它的方式
<Button Style="{StaticResource NavButton}"
Tag="Document"
Command="{Binding GotoDataMatrixEnterCommand}">
<Button.Content>
<Label Content="{Binding Source={RelativeSource Self},
Path=Tag,
Converter={StaticResource Icon},
UpdateSourceTrigger=LostFocus}"
Tag="Document" />
</Button.Content>
</Button>
我得到的是
Windows.System.Control.Label
在它的位置。我是否没有正确转换它,我不太确定为什么它没有替换正确的信息。我已经尝试了一些东西,并在网上阅读,尽管我现在被困住了。另外,当我尝试调试时它不起作用(它永远不会遇到断点)
解决方案
问题在于Label.Content 上的绑定。你应该使用RelativeSource,而不是Source。
它应该是:
RelativeSource={RelativeSource Mode=Self}
此外,您的: should beswitch
语句中存在语法错误(您缺少冒号)。StringToIconConverter
default return property;
default: return property;
推荐阅读
- com - mt.exe -replacements:未记录免注册 COM 组件的 xml 文件结构
- javascript - 如何设置类似 Instagram 的路线?本地主机:3000/用户名
- python - 在 Python 3.x 中转义特殊字符
- python - 用户创建指定类的对象
- java - 片段中的自定义列表视图。未找到布局
- azure-storage - 使用系统分配的托管标识将 Azure 流分析输出到 Data Lake Storage Gen2
- c++ - 用 C++ 读取文件,包括空格键
- object-detection - 在 sagemaker 中使用带有对象检测 API 的 tensorboard
- python-2.7 - 如何在unittest mock python中使用类变量条件
- jqgrid - jqGrid复选框分组总结