这可能是一个愚蠢的问题,或者我搜索了错误的单词:
我有一个组合框,并希望使用自定义转换器显示双打(显示等效分数)。
在DataTemplate中,我必须指定一个DataType,它是Double,但我不知道如何规定它。我确信有一个简单的方法来做到这一点!用数据模板绑定系统数据类型
把系统的命名空间中的窗口不编译
<Window ... xmlns:sys="clr-namespace:System" ...>
的数据类型,只需键入双人或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>
完整的解决方案:
使用系统命名空间SYS:作品!
收益是一个List <双>
增益是双
<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>
'sys'别名必须作为特殊xmlns添加,因为默认情况下它不会被添加。 – 2012-01-12 14:17:12
hm,当我将'; assembly = mscorlib'添加到它至少编译的名称空间定义时...但即使它包含一个说明'lala'的Textblock,数据模式仍然不起作用。它仍然使用ToString方法来显示数字。 – JCH2k 2012-01-12 15:13:47
谢谢,现在工作!我傻傻的键入x:Type! – JCH2k 2012-01-12 15:27:43