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