当前位置: 首页 > 编程笔记 >

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

温源
2023-03-14
本文向大家介绍WPF拖动DataGrid滚动条时内容混乱的解决方法,包括了WPF拖动DataGrid滚动条时内容混乱的解决方法的使用技巧和注意事项,需要的朋友参考一下

在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;
  }

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

 类似资料:
  • 本文向大家介绍JavaScript中Textarea滚动条不能拖动的解决方法,包括了JavaScript中Textarea滚动条不能拖动的解决方法的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了JavaScript中Textarea滚动条不能拖动的解决方法。分享给大家供大家参考,具体如下: 在IE中,你是否碰到过Textarea的滚动条不能拖动,但点上下按钮可以滚动内容? 这个问题的原因很

  • 编辑问题以包括所需行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答这个问题。 我正在使用RecyclView显示标记列表,每个值的标记都显示为CardView。但是卡片的一些内容在向下滚动RecyclView并向后滚动后丢失,如下面的两个屏幕截图所示。滚动后红色矩形中的内容丢失。 我想知道这是否是RecyclizerView的一个错误,并且在谷歌搜索后找不到解决方案。 除标题外,

  • 我目前正在使用JavaFX ScrollBar控件,它本身运行良好-但是我对拖动拇指时的“动画”不满意。 更具体地说: 当我快速拖动拇指时,快速加速-拇指动画不会立即跟随,但有点“滞后”-当我停止拖动拇指时的相同行为。。。拇指真正开始/追上预定位置需要一秒钟的时间 这不是繁重的布局计算之类的问题,因为我只是单独渲染ScrollBar而没有任何内容。 是否有一些选项可以让这个“加速动画”/“滞后”消

  • 我正在开发一个聊天应用程序。我有一个聊天活动,两个用户可以发送WhatsApp之类的消息,但我有个问题。 就像你在图中看到的(https://ibb.co/3cyYX01),滚动时视图乱糟糟的,我想我知道为什么了。 在查看了这些帖子后:RecyclerView在滚动时出错,Android:RecyclerView在滚动后内容出错 我假设问题可能出在函数中的回收器视图适配器中,因为我在某些视图(VI

  • 我有一个问题与自动滚动在滚动视图。 在我的例子中,有两个Recyclerview。第一个循环视图,水平滚动,第二个垂直滚动。第一个循环视图仅用于拖动,第二个循环视图只用于拖放。两个循环视图都在ScrollView中,所以我在第二个循环视图中禁用了垂直滚动。我在第二个Recyclerview的项目中添加了DragListener。每个项目都有一个拖动侦听器,因此我在拖放项目时添加/替换项目。 所以我

  • 你好,堆栈溢出,目前正在处理一个需要拖动元素的任务;不是本机API所做的图像拖动,而是拖动实际的元素。元素应该显示一个要删除的位置框,并在将其拖过一个区域时更改其自身的内部内容,该区域将在删除时删除该元素。到目前为止,我发现了这个有用的指令,帮助我做到这一点https://xieziyu.github.io/angular2-draggable/#/usage/basic 问题是,一旦元素通过某个

  • 本文向大家介绍js防止DIV布局滚动时闪动的解决方法,包括了js防止DIV布局滚动时闪动的解决方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js防止DIV布局滚动时闪动的方法,分享给大家供大家参考。具体方法如下: 最近接触页面性能的东西,有很多细微又原始的内容,比如浏览器渲染。资料非常多,所以选一些做节译,备忘。 JavaScript多次写、读DOM就会发生「布局颠簸」,引起文档重排

  • 本文向大家介绍Extjs grid panel自带滚动条失效的解决方法,包括了Extjs grid panel自带滚动条失效的解决方法的使用技巧和注意事项,需要的朋友参考一下 之前用EXTJS的gridPanel组件的时候,因为经常对gridPanel中的stroe数据进行过滤,所以有时候总是导致gridPanel自身所带的scrollbar失效。 取个实例,EXTJS gridPanel自带的滚