如何在c#中使用更改后的索引器名称,以便WPF元素也得到更新?

如何在c#中使用更改后的索引器名称,以便WPF元素也得到更新?,c#,wpf,xaml,C#,Wpf,Xaml,我有一个定义了索引器的类。只要我保持默认的IndexerName(Item),WPF元素就会很好地更新。 e、 g 在XAML中,我绑定它如下 <Label Content="{Binding CurrentDevice[3]}"/> 我提供的c#事件处理程序方法在检查(e.PropertyName==“ElementItem[]”)时识别了更改,但WPF元素没有 有没有办法让它在WPF中工作 我甚至尝试将XAML绑定修改为{binding CurrentDevice.Elemen

我有一个定义了索引器的类。只要我保持默认的IndexerName(Item),WPF元素就会很好地更新。 e、 g

在XAML中,我绑定它如下

<Label Content="{Binding CurrentDevice[3]}"/>
我提供的c#事件处理程序方法在检查(e.PropertyName==“ElementItem[]”)时识别了更改,但WPF元素没有

有没有办法让它在WPF中工作


我甚至尝试将XAML绑定修改为{binding CurrentDevice.ElementItem[3]},但没有成功。启动时读取的初始元素成功,但之后该元素未显示新值。

索引器绑定将查找Item[]的属性更改,我认为您无法更改此属性


参考:

IndexerName属性不应由应用程序代码设置。它“表示在不直接支持索引器的编程语言中,索引器的名称”。不要用它。它不但没有增加可读性,反而会造成混乱。在MSDN页面上,他们还说“System.Runtime.CompilerServices中的类仅供编译器编写者使用”即使在应用
索引器名称
属性之后。
<Label Content="{Binding CurrentDevice[3]}"/>
[IndexerName("ElementItem")]
public byte this[int index] {
    get { return ListElements[index].Value; }
    set {
        ListElements[index].Value = value;
        FirePropertyChanged("ElementItem[]");
    }
}