gpt4 book ai didi

c# - 如何将带有转换器的组合框绑定(bind)到 WPF 中的列表

转载 作者:行者123 更新时间:2023-11-30 19:09:25 26 4
gpt4 key购买 nike

我在这里尝试将组合框绑定(bind)到列表代码。组合框显示: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 中使用这个转换器,所以我的组合框中会有 ACI318-99 和 ACI318-11。

最佳答案

您应该设置组合框的 ItemTemplate,并在其中使用转换器。

<ComboBox ItemsSource="{Binding Codes}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=., Converter={StaticResource converterInstance}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>

在这里,converterInstance 应该是资源字典中自定义转换器的一个实例。

关于c# - 如何将带有转换器的组合框绑定(bind)到 WPF 中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27261410/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com