在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中。页面和mainwindow都声明了WGM命名空间-因为这篇文章已经足够长了,所以我删掉了它们。
<ComboBox Name="cmbWgmSelector" Margin="5,0" ItemsSource="{Binding Source={StaticResource WgmList}}"/>
可以提供的任何帮助/建议都将不胜感激。
更新绑定,如下所示:
<ComboBox Name="cmbWgmSelector" Margin="5,0" DisplayMemberPath="Value" ItemsSource="{Binding Path=WgmsCollection, Source={StaticResource WgmList}}"/>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句