急求WPF大牛! WPF 数据太多时,DataGrid中CheckBox列误选的问题!
布局文件如下:<DataGridHeight="300"Name="List"Width="200"ItemsSource="{BindingInfo}"><DataGr...
布局文件如下:
<DataGrid Height="300" Name="List" Width="200" ItemsSource="{Binding Info}" >
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="选择" Width="50">
<DataGridCheckBoxColumn.ElementStyle>
<Style TargetType="{x:Type CheckBox}">
</Style>
</DataGridCheckBoxColumn.ElementStyle>
</DataGridCheckBoxColumn>
<DataGridTextColumn Header="ID" Binding="{Binding ID}" Width="50" />
<DataGridTextColumn Header="Job" Binding="{Binding JobNum}" Width="80"/>
</DataGrid.Columns>
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Center">
</Setter>
</Style>
</DataGrid.ColumnHeaderStyle>
</DataGrid>
后台代码如下:
public struct Info//定义与DataGrid相关的数据结构
{
public string ID { get; set; }
public string JobNum { get; set; }
}
public ObservableCollection<Info> list = new ObservableCollection<Info>();
public MainWindow()
{
Info info = new Info();
for (int i = 0; i < 1000;i++ )
{
info.ID = i.ToString();
info.JobNum = i.ToString();
list.Add(info);
}
InitializeComponent();
List.ItemsSource = list; //为DataGrid添加数据源
}
运行状况:
当我只选择前几个用户:比如0、1、2、3时,如下图
不再做其他任何操作,向下滑动滚动条,发现其他的行有误选情况,如下图:
这是怎么回事呀,求大牛解释!! 展开
<DataGrid Height="300" Name="List" Width="200" ItemsSource="{Binding Info}" >
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="选择" Width="50">
<DataGridCheckBoxColumn.ElementStyle>
<Style TargetType="{x:Type CheckBox}">
</Style>
</DataGridCheckBoxColumn.ElementStyle>
</DataGridCheckBoxColumn>
<DataGridTextColumn Header="ID" Binding="{Binding ID}" Width="50" />
<DataGridTextColumn Header="Job" Binding="{Binding JobNum}" Width="80"/>
</DataGrid.Columns>
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Center">
</Setter>
</Style>
</DataGrid.ColumnHeaderStyle>
</DataGrid>
后台代码如下:
public struct Info//定义与DataGrid相关的数据结构
{
public string ID { get; set; }
public string JobNum { get; set; }
}
public ObservableCollection<Info> list = new ObservableCollection<Info>();
public MainWindow()
{
Info info = new Info();
for (int i = 0; i < 1000;i++ )
{
info.ID = i.ToString();
info.JobNum = i.ToString();
list.Add(info);
}
InitializeComponent();
List.ItemsSource = list; //为DataGrid添加数据源
}
运行状况:
当我只选择前几个用户:比如0、1、2、3时,如下图
不再做其他任何操作,向下滑动滚动条,发现其他的行有误选情况,如下图:
这是怎么回事呀,求大牛解释!! 展开
3个回答
展开全部
你把DataGridCheckBoxColumn 改成模板列,里面再塞个checkbox试试。
DataGridCheckBoxColumn 本身可能存在bug。
DataGridCheckBoxColumn 本身可能存在bug。
更多追问追答
追问
刚才试了模板列,还是不行啊!
追答
晕,你checkbox有木有设定神马绑定项?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
datagrid 滚动条刷新的问题。
更多追问追答
追问
我感觉也是滚动条刷新的问题,要怎么解决呢?
追答
ScrollViewer.CanContentScroll="False" 这个很重要
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询