如何在c#中使用更改后的索引器名称,以便WPF元素也得到更新?
我有一个定义了索引器的类。只要我保持默认的IndexerName(Item),WPF元素就会很好地更新。 e、 g 在XAML中,我绑定它如下如何在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
<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[]");
}
}