C# 如何绑定到一个数据源,但从另一个数据源更新触发器?

C# 如何绑定到一个数据源,但从另一个数据源更新触发器?,c#,wpf,binding,triggers,C#,Wpf,Binding,Triggers,我有一个文本框,带有一个绑定到字符串属性的单向,我希望它在我的数据上下文上的其他属性更改时更新。MyDataContext是一个可观察的集合,文本框显示有关集合的统计信息。因此,我希望在集合更改时更新统计信息,但我不希望必须引发虚拟的“统计信息更改”事件 换句话说,XAML(或通常的数据绑定)是否允许我为控件的数据指定一个绑定,为其更新事件指定另一个绑定?如果我理解正确,有一种更简单的方法可以实现您的要求: <ListBox ItemsSource={Binding Items} />

我有一个文本框,带有一个绑定到字符串属性的单向,我希望它在我的数据上下文上的其他属性更改时更新。MyDataContext是一个可观察的集合文本框显示有关集合的统计信息。因此,我希望在集合更改时更新统计信息,但我不希望必须引发虚拟的“统计信息更改”事件


换句话说,XAML(或通常的数据绑定)是否允许我为控件的数据指定一个绑定,为其更新事件指定另一个绑定?

如果我理解正确,有一种更简单的方法可以实现您的要求:

<ListBox ItemsSource={Binding Items} />

<TextBox Text="{Binding Items/PropertyName}" />

假设您的
observedcollection
中有一个名为
PropertyName
的可绑定属性,并且您的视图模型(或
DataContext
)有一个名为
Items
的属性,其类型与
observedcollection
相同,然后
文本框
控件将显示集合中当前选定项的
属性名称


您可以从MSDN上的页面中找到有关“/”路径语法的更多信息。

如果您不想提出为绑定中使用的属性更改的属性,您可以使用
MultiBinding
并将两者设置为其中的绑定属性,并根据需要相应地提及UpdateRigger,在转换器/字符串格式中,只需将第一个绑定的值应用于结果(第一个绑定是统计信息)
Binding.StringFormat
应该更好,因为这样可以避免使用自定义转换器,而只使用xaml进行转换。问题状态显示有关集合的统计信息。至少对我来说,这意味着他想要收藏的财产itself@Jim,你可能想重读我的答案。。。特别是说“假设您的ObservableCollection中有一个名为PropertyName的可绑定属性”。集合的属性,而不是当前项的属性。因此,如果我想查看集合的大小,我需要绑定到
{Binding Items.Count,Mode=OneWay}
Items/PropertyName
在say
Person
类中查找
PropertyName
。它没有在
observateCollection
上查找属性,我发现仅仅指定“{Binding Path=Playlist.Statistics,Mode=OneWay}”就可以得到我的结果。当“collection changed”事件发生时,引用“Playlist”(ObservableCollection)会导致集合的所有依赖属性更新。我的Statistics属性(“get”only)返回一个打印出来的有用信息字符串。当绑定路径的一部分是DependencyObject或INotifyPropertyChanged时,这是否意味着将重新计算所有依赖绑定?