Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在WPF绑定中将UIElement或XAML作为内容返回_C#_Wpf_Xaml_Wpf Controls - Fatal编程技术网

C# 如何在WPF绑定中将UIElement或XAML作为内容返回

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在代码隐藏中

你好,请原谅我英语不好

嗯。。。我正在尝试绑定到对象列表以填充ItemsControl。对象表示从配置文件中获取的设置的一对名称和值。其目的是使某些设置编辑器将编辑后的数据保存回文件

对象非常简单:

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}}"/>