我从名为A的班级ObservableCollection
开始(ObservableCollection<A>)
。
此集合(让我们称之为listA)绑定到ListBox
(我们称之为itemsList
)。
这个ListBox
有SelectionMode = Extended,所以我希望能够选择多个项目。
我正在尝试获取itemsList
的所选项目。问题是SelectedItems
返回对象列表,我不知道如何从A类“转换”它到ObservableCollection
。
我需要把它放在xml中,例如,如果我在A类中绑定了一个TextBox
字符串。
例如:
<TextBox Text={Binding ElementName=itemsList, Path=SelectedItems.stringA}"/>
当然我对DataContext
TextBox
答案 0 :(得分:1)
只需使用此绑定:
<TextBox
x:Name="MyTextBox"
TextChanged="TextBoxBase_OnTextChanged"
Text="{Binding Path=SelectedItems[0].Content,
ElementName=MyListBox,
NotifyOnSourceUpdated=True,
UpdateSourceTrigger=PropertyChanged,
Mode=TwoWay}">
</TextBox>
您将需要TextBoxBase_OnTextChanged事件处理程序,它将如下所示:
private void TextBoxBase_OnTextChanged(object sender, TextChangedEventArgs e)
{
MyListBox.SelectedItems.Cast<A>().ToList().ForEach(x => x.Content = MyTextBox.Text);
}
答案 1 :(得分:0)
如果要从第一个选定项目中显示StringA
,可以尝试绑定到集合中的索引。像这样:
<TextBox Text={Binding ElementName=itemsList, Path=SelectedItems[0].stringA}"/>