在主窗口内有一个填充了一些数据的列表框。这些数据是从 View 模型加载的,所以我没有任何代码隐藏。
MainWindow.xaml
<ListBox Name="listBoxData"
DataContext="{Binding Source={StaticResource MainWindowViewModelDataSource}}"
ItemTemplate="{DynamicResource BookTemplate}"
ItemsSource="{Binding Books}" />
我如何知道在列表框中选择了哪本书(使用ICommand
)并将其属性(例如int Id
)发送到viewmodel
进行进一步处理?
最佳答案
只需将 SelectedItem
绑定(bind)到 ViewModel 中的某个属性(例如 SelectedBook),无需使用 ICommand。
<ListBox Name="listBoxData"
ItemTemplate="{DynamicResource BookTemplate}"
ItemsSource="{Binding Books}"
SelectedItem="{Binding SelectedBook}" />
您只需访问 ViewModel 属性即可获取该书的 Id:
int selectedBookId = SelectedBook.Id;
关于c# - WPF ListBox 将 SelectedItem 值发送到 View 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20957732/