ozc*_*cho 12 c# wpf checkbox listview selecteditem
我有一个Listview,其中有一个复选框作为列之一.如果我点击实际复选框的任何位置,ListView的SelectedItem将按预期设置为当前选定的行.另一方面,如果我单击复选框(不先单击该行),则SelectedItem为null或先前单击的行.
谁能帮我吗....
干杯
<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>
Run Code Online (Sandbox Code Playgroud)
maj*_*cha 16
这很容易,只需处理复选框上的Click事件:
private void CheckBox_Click(object sender, RoutedEventArgs e) {
var cb = sender as CheckBox;
var item = cb.DataContext;
myListView.SelectedItem = item;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8362 次 |
| 最近记录: |