【发布时间】: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