为了账号安全,请及时绑定邮箱和手机立即绑定

WPF DataGrid 自动选择复选框错误?

WPF DataGrid 自动选择复选框错误?

C#
哆啦的时光机 2022-12-24 15:00:55
我有一个DataGrid并正在加载一些自定义类型的数据。还有一个Checkbox column。选中复选框时,当前行数据由以下代码获取。对于第一个复选框,没关系。然后我选中另一个复选框,它被选中但是当我滚动浏览数据时,我看到其他一些行复选框被自动选中!当我再次上去时,我第一次选择的复选框现在未选中,其他一些被自动选中!我用于检查事件的代码。private void CheckBox_Checked(object sender, RoutedEventArgs e){    var selectedOrder = MyDataGrid.SelectedItem as AutoOrderClass;    if (selectedOrder != null)    {        var order = SelectedOrdersList.FirstOrDefault(x => x.VendorName == selectedOrder.VendorName);        if (order == null)        {            OrdersCount++;            TotalOrders.Text = "Total Orders : " + OrdersCount;        }        SelectedOrdersList.Add(selectedOrder);    }}   这是 Xaml<DataGrid x:Name="MyDataGrid" VerticalScrollBarVisibility="Visible" ScrollViewer.CanContentScroll="True"          AutoGenerateColumns="False"          HorizontalScrollBarVisibility="Auto" Height="{Binding ActualHeight, ElementName=DataGridContainerPanel}">    <DataGrid.Columns>        <DataGridCheckBoxColumn x:Name="CheckBoxColumn" Header="Select">            <DataGridCheckBoxColumn.CellStyle>                <Style>                    <EventSetter Event="CheckBox.Checked" Handler="CheckBox_Checked"/>                    <EventSetter Event="CheckBox.Unchecked" Handler="CheckBox_Unchecked"/>                </Style>            </DataGridCheckBoxColumn.CellStyle>        </DataGridCheckBoxColumn>    </DataGrid.Columns></DataGrid>  这是正在发生的事情的图片!第一张照片:一切正常,只选择了第一行第二张图片:选择另一张但看到第三列被自动选中当我向下滚动时我看到其他一些也被选中第 3 张图片:现在我向上滚动并看到第一个复选框被自动取消选中怎么办?
查看完整描述

1 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

正如@SajithSageer所说,设置EnableRowVirtualization= false解决DataGrid了这个问题。



查看完整回答
反对 回复 2022-12-24
  • 1 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信