我目前正在学习WPF和数据绑定让我...任何帮助是感激的。
因此,我有两个UserControl,比如说1和2,在MainWindow.xaml中只是并排显示。在UserControl2中,我想将一些东西绑定到UserControl1的元素。就像下面失败的代码(显然):
{Binding ElementName=FolderView, Path=SelectedValue, Mode=OneWay}
其中FolderView是UserControl1中的TreeView
,我想在UserControl2中获取其属性。
我对MVVM还是个新手,我认为静态的ViewModel可以解决这个问题(如果不好,请纠正我),但是TreeView
的SelectedValue
属性是readonly
,我不知道如何将它绑定到ViewModel。
2条答案
按热度按时间bvn4nwqk1#
就像你说的MVVM能帮上忙。
你为你的每个用户控件创建一个视图。并且你为它们中的每一个创建一个视图模型。我有同样的问题,在第一次看这2他们帮助了我很多与你的问题。如果你需要更多的帮助,只是评论,我可以解释一些更多。
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/ecc7f9e9-ed16-40d9-89b9-d04040c46676/send-or-bind-parameters-from-a-usercontrol-to-another-usercontrol-in-wpf-mvvm?forum=wpf
https://softwareengineering.stackexchange.com/questions/408890/wpf-usercontrol-reuse-with-mvvm
vom3gejh2#
忘了所有的绑定吧。原来当一个
TreeView
的SelectedItemChanged
。RoutedPropertyChangedEventArgs<object>
的NewValue
包含了我需要的信息,也就是Tag
属性。MainViewModel.TVVM.TESTBOX
只是一个{get;set;}
,而MainViewModel.TVVM
是MainViewModel
的一个静态(这是我能想到的唯一方法,如果静态在这种情况下是好的,就用idk)属性。