欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

WPF中binding一个dictionary

程序员文章站 2022-06-09 17:31:11
...

参考Stack Overflow
界面上的绑定必须加上Path=,不加绑定就失败了。其次,我这里是一个key为枚举的字典,因此必须给类型名,且必须写上类的路径。xmlns:MyNameSpace="clr-namespace:MyNameSpace"
这是类与枚举的定义

namespace MyNameSpace
{
	enum MyEnum
	{
		first,
		second
	}
	class MyClass
	{
		public string MyValue {get;set;}
	}
}

ViewModel中的dictionary

Dictionary<MyEnum,MyClass> MyDic;

前端代码

{Binding Path=MyDic[(MyNameSpace:MyEnum)first].MyValue}

后端的字典binding

我有个DataGrid,需要动态添加几列,也用到了上面的那个字典

MyDataGrid.Columns.Insert(0, new DataGridTextColumn() { Header = string.Format("{0}", enum.ToString()), Binding = new Binding(string.Format("MyDic[{0}].MyValue", enum.ToString())) });

我原先在后台也加了(MyNameSpace:MyEnum),但是无法绑定,删除了反而就成功了

相关标签: binding dictionary