我有一个用户控件(比如A),其中有两个ContentPresenter,每个都绑定到另一个用户控件(比如B和C)。
在两个UserControl中的一个(比方说B)中,我有一个MyBox的listBox。
<ListBox ItemsSource="{Binding MyItemList}" SelectedItem="{Binding SelectedMyItem}">
MyItem代码:
Public Class MyItem
Implements INotifyPropertyChanged
Private m_Name As Integer
Public Property Name As Integer
Get
Return m_Name
End Get
Set(value As Integer)
m_Name = value
End Set
End Property
...
End Class
在另一个(比方说C)中我有TextBoxes,我想绑定到SelectedItem属性(比如MyItem.Name)。
<TextBox Text="{Binding SelectedItem.Name}"/>
有可能吗?因为我找不到一个。
答案 0 :(得分:0)
你说的几乎是不可能的。
将文本框文本绑定到视图模型c中的某个属性。将列表选定项绑定到视图模型b中的某个属性。
当选定项目发生更改时,将带有参数的事件作为字符串发送为字符串。处理viewmodel c中的事件并使用收到的Name参数更新文本框文本。
这样就可以了。
另一种可能的方法是在a viewmodel中创建b和c视图模型实例,并在更改bviewmodelinstance.selectedListItem属性时更新cviewmodelinstance.TextboxPropertyName。