這可能是一個愚蠢的問題,或者我搜索了錯誤的單詞:
我有一個組合框,並希望使用自定義轉換器顯示雙打(顯示等效分數)。
在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