Wpf 可观察集合绑定到特定项(按属性值)

Wpf 可观察集合绑定到特定项(按属性值),wpf,xaml,mvvm,collections,binding,Wpf,Xaml,Mvvm,Collections,Binding,我有一个关于在wpf应用程序中将特定的可观察(或列表)项绑定到文本块的问题。通常,您可以绑定特定项,如 但是当你的收藏增长到(例如)一个巨大的收藏时。绑定属性,如: Mycollection[14224].Name 我会变得一团糟。那么,有没有一种替代的绑定方法,仍然可以让我绑定到可观察集合中的特定项。但不通过集合中项的索引执行此操作。如果是,如何做到这一点 为了更加清晰: (以“半”字表示) 在xaml中: <TextBlock Text="{Binding Symbols[0].V

我有一个关于在wpf应用程序中将特定的可观察(或列表)项绑定到文本块的问题。通常,您可以绑定特定项,如

但是当你的收藏增长到(例如)一个巨大的收藏时。绑定属性,如:

Mycollection[14224].Name 
我会变得一团糟。那么,有没有一种替代的绑定方法,仍然可以让我绑定到可观察集合中的特定项。但不通过集合中项的索引执行此操作。如果是,如何做到这一点

为了更加清晰:

(以“半”字表示)

在xaml中:

<TextBlock Text="{Binding Symbols[0].Value, Mode=TwoWay}"></TextBlock>

我想要的是,绑定到这个集合中的一个符号的值。但要通过其名称(字符串属性名称)执行此操作,请执行以下操作:

<Textblock Text="Binding Symbols.a.Value, Mode=TwoWay}"></Textblock>


当然,上面的绑定不起作用,但它只是向你们展示我在寻找什么。

如果您绑定到
字典
,您可以在XAML中指定
字符串
键,正如我在这里建议的:


但是,您不能使用
可观察集合
执行此操作。键必须是编译时常量。它不能是您尝试使用绑定或其他方法解析的动态值。这在XAML中不受支持。

为什么不编写一个
IValueConverter
,并将标准(例如名称)作为参数提供给它呢

基本教程可以找到


如何传递参数是

我无法想象绑定时会出现什么情况
Mycollection[14224]
。对于集合wpf具有
ItemsControl
如果集合中有特殊的魔法项需要单独绑定,则viewmodel应将它们作为单个属性公开。如果要在XAML中复制和粘贴14224个文本块,则需要采纳ASh的建议并使用ItemsControl。
<TextBlock Text="{Binding Symbols[0].Value, Mode=TwoWay}"></TextBlock>
<Textblock Text="Binding Symbols.a.Value, Mode=TwoWay}"></Textblock>