草庐IT

DataGrid1

全部标签

c# - 为什么在更改 ItemsSource 时 DataGrid 不更新?

我的wpf应用程序中有一个数据网格,我有一个简单的问题。我有一个通用列表,每次将对象添加到集合中时,我都想将此集合绑定(bind)到我的数据网格数据源。而且我对使用可观察集合不感兴趣。重点是我在其他地方使用了相同的方法并且效果很好。但是这次当我按下添加按钮时,一个对象被添加并且数据网格更新正确但是从第二个项目添加到集合数据网格不再更新。代码如下:privatevoidbtnAddItem_Click(objectsender,RoutedEventArgse){OrderDetailObjects.Add(newOrderDetailObject{Price=currentitem.P

c# - WPF DataGrid 行以编程方式双击事件

我需要以编程方式创建DataGrid并需要向其添加双击行事件。这是如何在C#中完成的?我找到了这个;myRow.MouseDoubleClick+=newRoutedEventHandler(Row_DoubleClick);虽然这对我不起作用,因为我将DataGrid.ItemsSource绑定(bind)到一个集合,而不是手动添加行。 最佳答案 您可以在XAML中通过在其资源部分下添加DataGridRow的默认样式并在那里声明事件setter来做到这一点:或万一想在后面的代码中做到这一点。在网格上设置x:Name,以编程方式创

c# - 如何将 List<CustomObject> 绑定(bind)到 WPF DataGrid?

我是WPF的新手,想做一些基本的数据绑定(bind)。我有一个CustomObject列表,想将它绑定(bind)到DataGrid。主窗口.xaml.csusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Windows;usingSystem.Windows.Controls;usingSystem.Windows.Data;usingSystem.Windows.Documents;usingSystem.Windows.Input;usingSyste

c# - 在 WPF DataGrid 中禁用选择

如何禁用WPFTooklit的DataGrid中的选择?我尝试修改适用于ListView的解决方案(来自WPFListViewturnoffselection),但这不起作用: 最佳答案 简洁的方法是,只覆盖行和单元格的样式 关于c#-在WPFDataGrid中禁用选择,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2496814/

c# - WPF DataGrid 中的文本对齐方式

如何将列数据对齐到WPFDataGrid的中心? 最佳答案 如果您使用的是DataGridTextColumn,则可以使用以下代码片段: 关于c#-WPFDataGrid中的文本对齐方式,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/720732/

c# - DataGrid 行内容垂直对齐

我有一个来自WPF4.0RTM的常规DataGrid,我将数据库中的数据放入其中。为了使DataGrid的样式简洁明了,我使用高/高行,默认情况下DataGrid将行内容对齐在顶部垂直位置,但我想设置一个中心垂直对齐。我已经尝试过使用这个属性VerticalAlignment="Center"在DataGrid选项中,但它对我没有帮助。这里是一个XAML代码示例,描述了我的没有中心垂直对齐的DataGrid:执行这段代码的结果:如您所见,所有行内容都顶部垂直对齐。我必须添加什么才能使每行内容居中垂直对齐? 最佳答案 MSDN上此问题

c# - 根据值更改 DataGrid 单元格颜色

我有一个WPF数据网格,我想要根据值使用不同的单元格颜色。我的xaml中有以下代码StyleTargetType="DataGridCell"但不是只选择一个单元格而是选择所有行?我错过了什么? 最佳答案 如果您尝试设置DataGrid.CellStyle,则DataContext将成为行,因此如果您想更改基于一个单元格的颜色,在特定列中执行此操作可能最简单,尤其是因为列可以有不同的内容,例如TextBlocks、ComboBoxes和CheckBoxes。下面是将Name为John的所有单元格设置为浅绿色的示例:你也可以使用Val

c# - 从 WPF DataGrid 复制粘贴数据时 OpenClipboard 失败

我有一个使用数据网格的WPF应用程序。在我安装VisualStudio2012和Blend+SketchFlow预览版之前,该应用程序运行良好。现在,当我尝试使用Ctrl+C(在任何应用程序中)将数据从网格复制到剪贴板时,出现以下异常:System.Runtime.InteropServices.COMException(0x800401D0):OpenClipboardFailed(ExceptionfromHRESULT:0x800401D0(CLIPBRD_E_CANT_OPEN))atSystem.Runtime.InteropServices.Marshal.ThrowExc

c# - 在 WPF DataGrid 中单击编辑

我希望用户能够将单元格置于编辑模式并通过单击突出显示单元格所在的行。默认情况下,这是双击。我如何覆盖或实现它? 最佳答案 我是这样解决这个问题的:此DataGrid绑定(bind)到CollectionViewSource(包含虚拟Person对象)。神奇之处在于:DataGridCell.Selected="DataGridCell_Selected"。我只是HookDataGrid单元格的Selected事件,并在DataGrid上调用BeginEdit()。这是事件处理程序的隐藏代码:privatevoidDataGridCe

c# - 如何让 XAML DataGridColumns 填充整个 DataGrid?

我在XAML(不是Silverlight)中使用具有可调整列大小的DataGrid,如果用户调整屏幕大小,DataGrid将展开。目前,如果所有DataGrid列的宽度都小于DataGrid的宽度,我会出现一个额外的“列”,该列不可点击且没有任何作用。有谁知道如何让一列始终调整大小以填充所有剩余空间? 最佳答案 如果您使用Width="*",该列将填充以扩展可用空间。如果您希望所有列均等地划分网格,请将此应用于所有列。如果您只想用一个填充剩余空间,只需将其应用于该列,其余部分为“自动”或特定宽度。如果您希望该列占据可用宽度的1/4,