【问题标题】:binding combobox items to dictionary of enums将组合框项绑定到枚举字典
【发布时间】:2013-11-26 06:42:01
【问题描述】:

在 WPF 和绑定方面仍然很新,但我有一个枚举,我将在项目的其他地方将其用作对象的属性,但程序的第一个启动点之一将是用户选择单个项目从一个组合框,我想匹配可用的枚举选项。我最初认为有一个字典对象,其中 enum 选项作为键,值作为字符串用于 UI 演示,这就是我一直在努力的方向。我一直在四处寻找并认为我拥有它,但组合框填充为空白。

我有几个问题;

首先,由于我仍然不太确定与绑定相关的是什么,所以这个问题是否与我在另一个问题的评论中发现的这篇帖子Target Exception Bug 相关?如果是这样,这是否意味着我暂时找错了树?还有其他方法可以实现我的目标吗?

其次,如果它不相关,我是否遗漏了以下代码中的某些内容?我目前在输出窗口中没有错误,并且项目编译正常。

这是枚举(位于已添加到项目引用的单独命名空间中);

namespace WGM_lbr
{
public class Available_Wgms
{
    private static Dictionary<Wgms,string> _wgmColl;
    public static Dictionary<Wgms,string> WgmsCollection 
    {
        get 
        {
            return _wgmColl;
        }
    }

    static Available_Wgms()
    {
        _wgmColl = new Dictionary<Wgms, string>() {
            {Wgms.First, "First Dictionary item"},
        //other Dictionary Items go here
        }
    }

    public enum Wgms
    {
        First,
        //other Enum options go here
    }
}
}

我在 app.xaml 中的资源声明

<Application x:Class="The_First.App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:WGM="clr-namespace:WGM_lbr;assembly=WGM_lbr"
         StartupUri="MainWindow.xaml">
<Application.Resources>
    <BooleanToVisibilityConverter x:Key="b2v"/>
    <WGM:Available_Wgms x:Key="WgmList"/>
</Application.Resources>

最后是组合框和绑定 xaml(如果它相关,它存在于 wpf 控件的嵌套中,直到存在于页面上的网格,该网格通过使用页面的框架控件加载到 mainwindow.xaml来源。页面和主窗口都声明了 WGM 命名空间——我把这些删掉了,因为这篇文章已经够长了);

<ComboBox Name="cmbWgmSelector" Margin="5,0" ItemsSource="{Binding Source={StaticResource WgmList}}"/>

非常感谢您提供的任何帮助/建议。

【问题讨论】:

    标签: wpf xaml data-binding combobox enums


    【解决方案1】:

    更新绑定如下:

    <ComboBox Name="cmbWgmSelector" Margin="5,0" DisplayMemberPath="Value" ItemsSource="{Binding Path=WgmsCollection, Source={StaticResource WgmList}}"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-04
      • 2018-11-12
      • 2020-02-07
      • 1970-01-01
      • 1970-01-01
      • 2016-02-06
      • 1970-01-01
      • 2015-08-20
      相关资源
      最近更新 更多