C# 为什么WPF combobox itemssource converter获取整个集合而不是项?
当我调试以下实现时。Convert方法参数值具有所有值,转换自然会失败 XAMLC# 为什么WPF combobox itemssource converter获取整个集合而不是项?,c#,wpf,data-binding,C#,Wpf,Data Binding,当我调试以下实现时。Convert方法参数值具有所有值,转换自然会失败 XAML 因为转换器就是这样工作的——它允许您转换绑定中的源项,在本例中是CustomerSearchNumber。如果要转换组合框中的每个项目,则需要指定使用转换器的自定义项目模板: <ComboBox ItemsSource="{Binding CustomerSearchNumbers}"> <ComboBox.ItemTemplate> <DataTemplate>
因为转换器就是这样工作的——它允许您转换绑定中的源项,在本例中是CustomerSearchNumber。如果要转换组合框中的每个项目,则需要指定使用转换器的自定义项目模板:
<ComboBox ItemsSource="{Binding CustomerSearchNumbers}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource customernumbertostringconverter}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
因为转换器就是这样工作的——它允许您转换绑定中的源项,在本例中是CustomerSearchNumber。如果要转换组合框中的每个项目,则需要指定使用转换器的自定义项目模板:
<ComboBox ItemsSource="{Binding CustomerSearchNumbers}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource customernumbertostringconverter}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
谢谢我确信我以前就这样做过。嗯+1对于唯一合理的答案:因为转换器就是这样工作的:@charm请记住,您可能需要单向绑定,这取决于您的ItemSource属性Tanks!我确信我以前就这样做过。嗯+1是唯一合理的答案:因为转换器就是这样工作的:@charm请记住,根据ItemSource属性,您可能需要单向绑定
public class CustomerNumberToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
var enumValue = (CustomerIdentifier)value;
switch (enumValue)
{
case CustomerIdentifier.ClientPointNo:
return XxxUtility.GetString("strclientpointno");
case CustomerIdentifier.ClientNo:
return XxxUtility.GetString("strclientno");
case CustomerIdentifier.MeterNo:
return XxxUtility.GetString("strmeterno");
default:
return XxxUtility.GetString("strcustomerpointno");
}
}
}
<ComboBox ItemsSource="{Binding CustomerSearchNumbers}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource customernumbertostringconverter}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>