1

我有几个与字典绑定的文本框

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

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

有什么方法可以绑定 .NET Framework 中的索引属性?

4

1 回答 1

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>
于 2012-11-22T13:03:41.500 回答