首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将带有转换器的组合框绑定到WPF中的列表中

如何将带有转换器的组合框绑定到WPF中的列表中
EN

Stack Overflow用户
提问于 2014-12-03 00:12:03
回答 3查看 6.2K关注 0票数 2

在这里,我试图将组合框绑定到列表代码上。组合框显示:A&B。

代码语言:javascript
复制
<ComboBox ItemsSource="{Binding Path=Codes}"/>

public SettingsWindow()
{
    InitializeComponent();

    Codes = new List<Code> {Code.A, Code.B};

    DataContext = this;
}

我定义了一个转换器,用于在组合框中显示更容易理解的信息:

代码语言:javascript
复制
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。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-12-03 00:26:13

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

代码语言:javascript
复制
<ComboBox ItemsSource="{Binding Codes}">
   <ComboBox.ItemTemplate>
     <DataTemplate>
      <TextBlock Text="{Binding Path=., Converter={StaticResource converterInstance}}"/>
     </DataTemplate>
  </ComboBox.ItemTemplate>          
</ComboBox>

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

票数 9
EN

Stack Overflow用户

发布于 2016-04-05 09:44:23

卡利伯恩微型会议并没有那么不同,但我只是想为未来的搜索者添加它。(Path=.在我的情况下不需要)

代码语言:javascript
复制
<ComboBox x:Name="MyPropertyWithItems">
  <ComboBox.ItemTemplate>
    <DataTemplate>
      <TextBlock Text="{Binding Converter={StaticResource converterInstance}}"/>
    </DataTemplate>
  </ComboBox.ItemTemplate>          
</ComboBox>
票数 3
EN

Stack Overflow用户

发布于 2014-12-03 00:26:54

试一试

代码语言:javascript
复制
<Window.Resources>
    <CodeConverter x:Key="CodeConverter"/>
</Window.Resources>

代码语言:javascript
复制
<ComboBox ItemsSource="{Binding Path="Codes" Converter="{StaticResource CodeConverter}}"/>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27261410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档