我有一個組合框以下的(工作)XAML:指定轉換器組合框
<ComboBox SelectedValue="{Binding SelectedItem}" ItemsSource="{Binding Items}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource MyEnumToStringConverter}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
我不喜歡這樣的代碼:爲了改變我的枚舉是如何表示爲一個字符串,我也有指定ComboBox ItemTemplate的外觀。如果我想要全局更改所有ComboBoxes的外觀,該怎麼辦?
另一種解決方案是指定的的ItemSource轉換器結合:
<ComboBox
SelectedValue="{Binding SelectedItem}"
ItemsSource="{Binding Items, Converter={StaticResource MyEnumToStringConverter}}" />
我不喜歡這樣,因爲任何我想要的組合框來存儲我真正的類型,而不是它的字符串表示。
我還有其他的替代方案嗎?
您可以使用'樣式'來全局更改所有組合框的外觀。 – VS1
@ VS1 True。我想這是一個壞榜樣。實際上困擾我的是如何將枚舉轉換爲字符串,以及如何使用TextBlock進行演示。 –
您可以在您的課堂上創建一個計算出的屬性,並將其用作ComboBox的DisplayMemberPath。 – AjS