C# 如何在WPF绑定中将UIElement或XAML作为内容返回
你好,请原谅我英语不好 嗯。。。我正在尝试绑定到对象列表以填充ItemsControl。对象表示从配置文件中获取的设置的一对名称和值。其目的是使某些设置编辑器将编辑后的数据保存回文件 对象非常简单:C# 如何在WPF绑定中将UIElement或XAML作为内容返回,c#,wpf,xaml,wpf-controls,C#,Wpf,Xaml,Wpf Controls,你好,请原谅我英语不好 嗯。。。我正在尝试绑定到对象列表以填充ItemsControl。对象表示从配置文件中获取的设置的一对名称和值。其目的是使某些设置编辑器将编辑后的数据保存回文件 对象非常简单: MySettings { public string Name { get; set; } public string Value { get; set; } } 有一些简单的标记(这是一个草图,不是精确的项目): 最后我添加了myItmCtrl.ItemsSource=List在代码隐藏中
MySettings
{
public string Name { get; set; }
public string Value { get; set; }
}
有一些简单的标记(这是一个草图,不是精确的项目):
最后我添加了myItmCtrl.ItemsSource=List代码>在代码隐藏中
一切正常
然后,我决定推进我的表单,因为一些值
s(都存储为字符串)可以采用“TRUE”
和“FALSE”
的值,它们可以很容易地转换为bool
。因此,在某些情况下,我不想输入TRUE或FALSE,而是想用不同的UIElement来表示这些值-复选框-,然后绑定到它的IsChecked
属性
因此,我希望字符串值由TextBox
es表示,bool值由CheckBox
es表示。我可以在代码隐藏中完成,并通过List
动态创建元素,但我没有。我们的想法是找到一些棘手的扩展,可以在xaml中描述它的全部(或一些50/50XAML/代码隐藏)
非常感谢最好的解决方案是使用ValueConverter
在字符串和布尔值之间进行转换。既然我们已经有了一些不错的方法,可以将字符串转换为布尔值,反之亦然,这应该不是问题。您可以构建自己的ValueConverter
,正如amnezjak所述
文本框的绑定可能如下所示:
<TextBox Text="{Binding Value, Converter={StaticResource myConverter}}"/>
myConverter
是您导入的实际转换器的关键。了解
<TextBox Text="{Binding Value, Converter={StaticResource myConverter}}"/>