我有几个用词典绑定的文本框
<TextBox Text="{Binding Path=MyField[NotDefinedIndex], Mode=TwoWay}"></TextBox>
如果我尝试使用未在数据上下文中定义的索引,则会抛出“无法连接到索引”异常。 有没有办法捕获这个错误,定义索引(MyFileld [“NotDefinedIndex”] = string.Empty)然后完成绑定?
有没有办法在.NET Framework中绑定索引属性?
答案 0 :(得分:1)
当您绑定到未定义的索引时隐藏绑定错误可能不是一个好主意;但是,如果值不存在,则可以定义将访问字典并返回string.Empty
的属性,这样您就不会收到绑定错误。例如,在您的视图模型中:
public Dictionary<string, string> MyField { get; set; }
public string this[string key]
{
get
{
string result;
if (MyField.TryGetValue(key, out result))
{
return result;
}
return string.Empty;
}
}
然后在XAML中:
<TextBox Text="{Binding Path=[NotDefinedIndex], Mode=TwoWay}"></TextBox>