【发布时间】:2020-08-07 12:05:57
【问题描述】:
我有一个 listbox 和一个 modelview ,用来绑定来自 obervable 集合的 listbox 项。
我的要求是我需要从视图模型中设置 selectedItem 以及 selectedIndex,以便用户可以看到所选项目。
希望有人能帮我解决
【问题讨论】:
标签: c# wpf binding listbox viewmodel
我有一个 listbox 和一个 modelview ,用来绑定来自 obervable 集合的 listbox 项。
我的要求是我需要从视图模型中设置 selectedItem 以及 selectedIndex,以便用户可以看到所选项目。
希望有人能帮我解决
【问题讨论】:
标签: c# wpf binding listbox viewmodel
在您的视图模型中创建一个 SelectedItem 属性,然后您可以编写类似这样的内容
SelectedItem="{Binding SelectedItem,UpdateSourceTrigger=PropertyChanged}"
在您的 XAML 中。
【讨论】:
var charles = new Person() { FirstName = "Charles", LastName = "Darwin" }; viewModel.SelectedPerson = charles; 更改
public Person SelectedPerson { get { return m_SelectedPerson; } set => SetProperty(ref m_SelectedPerson, value); }中的selectedPerson属性@
<StackPanel Margin="0,0,-0.4,113"> <ListBox Name="personsListBox" SelectedIndex="{Binding SelectedPerson.Index }" ItemsSource="{Binding Persons}" DisplayMemberPath="LastName" SelectedItem="{Binding SelectedPerson,UpdateSourceTrigger=PropertyChanged}" /> <Label Content="Selected person"/> <Label Content="{Binding SelectedPerson.FirstName}"/> <Label Content="{Binding SelectedPerson.LastName}"/> </StackPanel>