在这里,我试图将组合框绑定到列表代码上。组合框显示:A&B。
<ComboBox ItemsSource="{Binding Path=Codes}"/>
public SettingsWindow()
{
InitializeComponent();
Codes = new List<Code> {Code.A, Code.B};
DataContext = this;
}我定义了一个转换器,用于在组合框中显示更容易理解的信息:
public class CodeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var code = (Code)value;
string text;
if (code == Code.A)
{
text = "ACI318-99";
}
else
{
text = "ACI318-11";
}
return text;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value;
}
} 但是我不知道如何在我的XAML中使用这个转换器,这样我就可以在我的组合框中使用have 318-99和have 318-11。
发布于 2014-12-03 00:26:13
您应该设置组合框的ItemTemplate,并在其中使用转换器。
<ComboBox ItemsSource="{Binding Codes}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=., Converter={StaticResource converterInstance}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>在这里,converterInstance应该是资源字典中自定义转换器的一个实例。
发布于 2016-04-05 09:44:23
卡利伯恩微型会议并没有那么不同,但我只是想为未来的搜索者添加它。(Path=.在我的情况下不需要)
<ComboBox x:Name="MyPropertyWithItems">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource converterInstance}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>发布于 2014-12-03 00:26:54
试一试
<Window.Resources>
<CodeConverter x:Key="CodeConverter"/>
</Window.Resources>和
<ComboBox ItemsSource="{Binding Path="Codes" Converter="{StaticResource CodeConverter}}"/>https://stackoverflow.com/questions/27261410
复制相似问题