【发布时间】:2017-10-02 18:15:57
【问题描述】:
我有一个绑定到 Viewmodel 的列表框,我正在使用 mouse_doubeclickevent 来检索所选项目的值,但它返回 null,我可能在这里缺少什么? SWdistinct 是一个列表
视图模型:
public List<swversion> SWdistinct
{
get;
set;
}
XAML:
<ListBox x:Name="CRSWUNIQUE" ItemsSource="{Binding SWdistinct}" SelectedItem="{Binding Path=SWdistinct,Mode=TwoWay}" MouseDoubleClick="CRSWUNIQUE_MouseDoubleClick" DisplayMemberPath="SW_Version" IsTextSearchEnabled="True" />
代码背后:
private void CRSWUNIQUE_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
ListBoxItem item = CRSWUNIQUE.SelectedItem as ListBoxItem;
if (item != null)
// if (CRSWUNIQUE.SelectedItem != null)
{
MessageBox.Show(item.Content.ToString());
}
}
【问题讨论】:
-
应该
ItemsSource和SelectedItem都是SWdistinct吗?您确定SelectedItem在您的双击处理程序中实际上是 null 吗?返回 null 的可能是ListBoxItem的强制转换。在调试时检查 SelectedItem 有什么? -
@TylerLee SWdistinct 是一个列表,当我调试此行并将光标指向 CRSWUNIQUE 时,它显示如下
System.Windows.Controls.ListBoxItem.count:2,当我指向 SelectedItem 时,它显示了值SW_Version:myvalue
标签: c# wpf mvvm data-binding