这可能是一个愚蠢的问题,或者我搜索了错误的单词:
我有一个 ComboBox 并想使用自定义转换器显示 double (显示等效分数)。
在 DataTemplate 中,我必须指定一个 DataType,它是 Double,但我不知道如何指定它。我相信有一个简单的方法可以做到这一点!
将系统命名空间添加到窗口不会编译
<Window ... xmlns:sys="clr-namespace:System" ...>
只需在 DataType 中键入 Double 或 System.Double 也不行。
并且为简单的 Double-Type 定义 ViewModel 也不是解决方案,不是吗?!
到目前为止,这是我的代码:
<ComboBox ItemsSource="{Binding Gains}" SelectedItem="{Binding Gain, Mode=TwoWay}">
<ComboBox.Resources>
<DataTemplate DataType=" ??????? fract">
<TextBlock Text="{Binding ., Converter=fractConverter}"/>
</DataTemplate>
</ComboBox.Resources>
</ComboBox>
完整解决方案:
使用 System 命名空间作为 sys: 有效!
Gains 是一个列表
增益是双倍的
<Window ... xmlns:sys="clr-namespace:System;assembly=mscorlib" ...>
组合框的工作方式如下:
<ComboBox ItemsSource="{Binding Gains}" SelectedItem="{Binding Gain, Mode=TwoWay}">
<ComboBox.Resources>
<DataTemplate DataType="{x:Type sys:Double}">
<TextBlock Text="{Binding ., Converter={StaticResource realConverter}}"/>
</DataTemplate>
</ComboBox.Resources>
</ComboBox>
最佳答案
像这样:
<DataTemplate DataType="{x:Type sys:Double}">
关于wpf - 与 System DataType 的 DataTemplate 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8836022/