如果我有

public class Foo : INotifyPropertyChanged{
    public object this[string name] {
        get {
            PremiseProperty prop;
            if (_properties.TryGetValue(name, out prop))
                return prop.Value;
            return null;
        }
        set {
            SetMember(name, value);
        }
    }
   ...
}


用代码我可以做

var f = new Foo();
f["Charlie"] = 42;
Debug.WriteLine(f["Charlie"]);


如何在XAML中访问“属性”“ Charlie”?

不是这些:

<TextBlock Text="{Binding Path=[Charlie]}"/> // hangs designer
<TextBlock Text="{Binding Path=["Charlie"]}"/> // bad syntax
<TextBlock Text="{Binding Path=['Charlie']}"/> // bad syntax

最佳答案

设置DataContext之后,
试试这个(更新):

<TextBlock Text="{Binding [Charlie]}"/>

10-06 13:45