WPF拖动DataGrid滚动条时内容混乱的解决方法_C#教程

在WPF中,如果DataGrid里使用了模板列,当拖动滚动条时,往往会出现列表内容显示混乱的情况。解决方法就是在Binding的时候给UpdateSourceTrigger赋值。

 <Grid>
  <Grid.RowDefinitions>
   <RowDefinition Height="25"></RowDefinition>
   <RowDefinition></RowDefinition>
  </Grid.RowDefinitions>
  <Button Height="23" Click="Button_Click" Content="Click" Grid.Row="0"></Button>
  <DataGrid Name="dgStudent" AutoGenerateColumns="False" IsEnabled="True" Grid.Row="1"
     EnableColumnVirtualization="True" EnableRowVirtualization="True">
   <DataGrid.Columns>
    <DataGridTextColumn Header="Name" Binding="{Binding Name}" Width="80"></DataGridTextColumn>
    <DataGridTemplateColumn Header="Age" Width="70">
     <DataGridTemplateColumn.CellTemplate>
      <DataTemplate>
       <TextBox Margin="5" Text="{Binding Age, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"></TextBox>
      </DataTemplate>
     </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
    <DataGridTemplateColumn Header="Course" Width="100">
     <DataGridTemplateColumn.CellTemplate>
      <DataTemplate>
       <ComboBox Margin="5" ItemsSource="{Binding CourseSource}" Text="{Binding Course, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"></ComboBox>
      </DataTemplate>
     </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
   </DataGrid.Columns>
  </DataGrid>
 </Grid>

后台代码如下:

 public class Student
 {
  public string Name { get; set; }
  public string Age { get; set; }
  public List<string> CourseSource { get; set; } = new List<string>() { "C", "C++", "C#" };
  public string Course { get; set; }
 }

 private void Button_Click(object sender, RoutedEventArgs e)
  {
   var students = new List<Student>();
   for (int i = 1; i <= 50; i++)
   {
    var student = new Student()
    {
     Name = $"student{i}"
    };
    students.Add(student);
   }
   this.dgStudent.ItemsSource = null;
   this.dgStudent.ItemsSource = students;
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索wpf
, datagrid
滚动条
wpf datagrid 滚动条、wpf datagrid 行拖动、wpf 鼠标拖动滚动条、datagrid横向滚动条、datagrid 滚动条,以便于您获取更多的相关知识。

时间: 2024-10-03 02:17:15

WPF拖动DataGrid滚动条时内容混乱的解决方法_C#教程的相关文章

WPF字体或内容模糊的解决方法_C#教程

本文会给大家介绍尝试过的一些方法,大家可以一起看看. 1.用WPF4.0中的新字体渲染方法,没有改善 <Setter Property="TextOptions.TextFormattingMode" Value="Display" /> <Setter Property="TextOptions.TextRenderingMode" Value="ClearType" /> 2.给控件加上SnapsT

在IE下拖动滚动条时border消失的解决方法_经验交流

通常我会用DIV加上border来定义边线,可有时发现在IE下拖动滚动条时border会经常消失,当你刷新时,又会出来.这个问题,我想了很久也没有想出什么原因,所以在些之前用DIV+CSS所写的页面中,这个问题都存在.今天,这个问题,实在太影响最终结果,所在找了一个提示: "以为DIV加上一个高度就能解决."下面传张前后对比图. 至于产生这个问题的原因,我想应该是IE的BUG吧.当你用Mozilla Firefox / Opera 则不会产生这种问题.

C# WinForm控件对透明图片重叠时出现图片不透明的简单解决方法_C#教程

本文实例讲述了C# WinForm控件对透明图片重叠时出现图片不透明的简单解决方法.分享给大家供大家参考,具体如下: 在Winform中如果将一个透明图片放在窗体上能正常显示透明,但是如果将该图片放在另一个控件上会导致不能显示透明效果. 解决这种情况,可以采取在控件上使用GDI+绘画出透明图片. 这里我们就以一个pictureBox2控件上面重叠一张png透明图片为例: 我们只需要给pictureBox2控件添加Paint事件,然后对png透明图片进行绘制即可,代码如下: private voi

sql server 2005时发生18452错误解决方法

ODBC 测试sql server 2005时发生18452错误解决方法 用.net开发的网站连接数据库里发生错误,当访问静态页面里显示正常. 1.首先想到的是测试ODBC数据源,当用sql用户和密码登录时出现如下图错误: 2.因为是在客户服务器上安装,所以未设置sa的密码,由于安装时未勾选择了"windows身份验证",所以当你测试sql server 2005的用户时出现此错误. 3.打开"SQL Server Management Studio"双击数据库所在

win7系统电脑玩大型网游时很卡的解决方法

  win7系统电脑玩大型网游时很卡的解决方法.对于网游玩家来讲,都希望能够有一个流程的网速,这样玩网游的心情也有有所提高,但是一些win7 64位旗舰版用户玩大型网游时很卡,让人感到很烦恼,每次玩网游总是一卡一卡的,影响游戏心情.有什么方法能够提高电脑玩网游的速度呢?方法当然是有的,我们可以利用"360安全卫士"来提高网速,下面大家一起来看看设置方法吧. 具体方法如下: 1.关闭其它电脑程序,给游戏提供更多的内存空间; 2.待"360安全卫士"运行后,右击任务栏&

thinkPHP使用post方式查询时分页失效的解决方法_php实例

本文实例讲述了thinkPHP使用post方式查询时分页失效的解决方法.分享给大家供大家参考,具体如下: 昨天晚上一直没有解决的php项目中的bug,就在刚才终于搞定,在这里还需要感谢各位大神给的帮助! 具体问题描述 最近遇到一个非常棘手的问题,也是因为刚入手thinkphp.在做项目的过程中,因为需要非常多的查询条件,如果以get方式提交表单的话,会因为url长度限制而报错,所以必须使用post方式提交表单数据,但是在分页的过程中,遇到了问题,因为thinkphp自带的分页是以a标签的形式,进

php5.4以下版本json不支持不转义内容中文的解决方法

 这篇文章主要介绍了php5.4以下版本json不支持不转义内容中文的解决方法,通过一个自定义php方法实现模拟joson中文不转义,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php5.4以下版本json不支持不转义内容中文的解决方法.分享给大家供大家参考.具体分析如下: 写ERP接口的时候遇到JAVA方接收这种json_encode后的内容  代码如下: {"orderCode":"1401160935542399","creat

电脑开机后提示尝试运行nvcpl.dll,NvSartup时发生意外的解决方法

  电脑开机后提示尝试运行nvcpl.dll,NvSartup时发生意外的解决方法 1.Nvcpl.dll是NVIDIA显卡驱动的一个文件,出现以上提示可能是在优化或升级驱动的过程中破坏了该文件,非专业人员可以忽略这个文件; 2.可运行config,将Nvcpl启动项移除; 3.运行service.msc,找到nvidia display driver service,并禁用该服务项; 4.如果想要继续使用NVIDIA控制面板,可以借助驱动精灵等软件,卸载原有驱动后再重新下载安装. 如果发现电脑

Ubuntu使用ctrl+alt+Fn进入控制台时花屏的解决方法

buntu使用ctrl+alt+Fn进入控制台时花屏的解决方法如下: 首先你需要开启内核的frame buffer 代码: sudo http://www.aliyun.com/zixun/aggregation/19512.html">nano /boot/grub/menu.lst 找到kernel一行(是你一直使用的内核,非single那个),在末尾添上vga=数值,数值请看下表(为方便已经把数值换算成十进制): * 色彩 640x400 640x480 800x600 1024x7