参考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)
,但是无法绑定,删除了反而就成功了
更多推荐
WPF中binding一个dictionary
发布评论