WPF ListView控件的SelectedItem为null [英] WPF ListView SelectedItem is null
本文介绍了WPF ListView控件的SelectedItem为null的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有都有一个复选框作为一个列列表视图。如果我点击任何地方,但实际的复选框的ListView的的SelectedItem设置为当前选定行,符合市场预期。如果,另一方面,我点击到该复选框(不点击该行第一),那么的SelectedItem为空或previously点击一行。
谁能帮我......
干杯
< ListView的宽度=自动的SelectionMode =单X:NAME =列表框的ItemsSource ={结合迈德特}的SelectedItem ={绑定路径= SelectedMyData} >
< ListView.View>
<&GridView的GT;
< GridViewColumn标题=日期WIDTH =120>
< GridViewColumn.CellTemplate>
<&DataTemplate的GT;
<内容presenter风格={StaticResource的DateTimeContent}CONTENT ={结合数值指明MyDate}/>
< / DataTemplate中>
< /GridViewColumn.CellTemplate>
< / GridViewColumn>
< GridViewColumn标题=是正确的WIDTH =100>
< GridViewColumn.CellTemplate>
<&DataTemplate的GT;
<复选框IsThreeState =FALSE
选中=OnChkChecked
未选中=OnChkChecked
=器isChecked{结合IsCorrect}>< /复选框>
< / DataTemplate中>
< /GridViewColumn.CellTemplate>
< / GridViewColumn>
< / GridView的>
< /ListView.View>
< /&的ListView GT;
< GridViewColumn.CellTemplate>
<&DataTemplate的GT;
<复选框IsThreeState =FALSE
选中=OnChkChecked
未选中=OnChkChecked
=器isChecked{结合IsCorrect}>< /复选框>
< / DataTemplate中>
< /GridViewColumn.CellTemplate>
< / GridViewColumn>
< / GridView的>
< /ListView.View>
< /&的ListView GT;
解决方案
这很容易,只需处理你的复选框,点击事件:
私人无效CheckBox_Click(对象发件人,RoutedEventArgs E){
变种CB =发件人为复选框;
VAR项目= cb.DataContext;
myListView.SelectedItem =项目;
}
I have a Listview that has a checkbox as one of the columns. If I click anywhere but the actual checkbox the SelectedItem of the ListView is set to the current selected row, as expected. If, on the other hand I click onto the checkbox (without clicking on the row first) then the SelectedItem is null or the previously clicked row.
Can anyone help me out....
Cheers
<ListView Width="auto" SelectionMode="Single" x:Name="listBox" ItemsSource="{Binding MyData}" SelectedItem="{Binding Path=SelectedMyData}">
<ListView.View>
<GridView>
<GridViewColumn Header="Date" Width="120">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ContentPresenter Style="{StaticResource DateTimeContent}" Content="{Binding MyDate}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Is Correct" Width="100">
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox IsThreeState="False"
Checked="OnChkChecked"
Unchecked="OnChkChecked"
IsChecked="{Binding IsCorrect}"></CheckBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox IsThreeState="False"
Checked="OnChkChecked"
Unchecked="OnChkChecked"
IsChecked="{Binding IsCorrect}"></CheckBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
解决方案
It's very easy, just handle Click event on your checkbox:
private void CheckBox_Click(object sender, RoutedEventArgs e) {
var cb = sender as CheckBox;
var item = cb.DataContext;
myListView.SelectedItem = item;
}
这篇关于WPF ListView控件的SelectedItem为null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文