c# - WPF ListBox 将 SelectedItem 值发送到 View 模型

标签 c# .net wpf

在主窗口内有一个填充了一些数据的列表框。这些数据是从 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/

相关文章:

c# - VB 6's MSXML2.XMLHTTP vs C#' s WebResponse

c# - 使连接的套接字在.BeginReceive 之后立即接受新消息?

c# - 如何使用文化将变量中的波斯数字转换为英语数字?

c# - 动态生成、分组和绑定(bind)单选按钮到枚举

c# - 如何获取word文档封面的名字?

c# - 打印属性名称(不是你想的那样)

.net - 为什么 .NET Web 请求类在没有身份验证 header 的情况下重新运行请求?

c# - 实现 OpenID : identifying users

c# - 是否有一个很好的工具可以从 XAML 中查找对属性的引用?

wpf - Interactivity.Behavior<T> 与附加属性