XAML绑定是否支持索引属性?

时间:2012-11-22 08:12:49

标签: c# xaml data-binding

我有几个用词典绑定的文本框

<TextBox Text="{Binding Path=MyField[NotDefinedIndex], Mode=TwoWay}"></TextBox>

如果我尝试使用未在数据上下文中定义的索引,则会抛出“无法连接到索引”异常。 有没有办法捕获这个错误,定义索引(MyFileld [“NotDefinedIndex”] = string.Empty)然后完成绑定?

有没有办法在.NET Framework中绑定索引属性?

1 个答案:

答案 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>