Tag: datagrid

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

我需要以编程方式创建一个DataGrid,并需要向其添加双击行事件。 这是如何在C#中完成的? 我找到了这个; myRow.MouseDoubleClick += new RoutedEventHandler(Row_DoubleClick); 虽然这对我不起作用,因为我将DataGrid.ItemsSource绑定到集合而不是手动添加行。

如何动态地将两个按钮添加到单个数据网格列?

按钮代码 DataGridViewButtonColumn btn = new DataGridViewButtonColumn(); dataGridView1.Columns.Add(btn); 我正在使用WinForms App,这里我添加了两个按钮,但我想这两个按钮应该只放在单列中。

Datagrid前景色不起作用

我有一个显示二维数据的简单数据网格。 我在测试项目中尝试过,结果很好。 这是xmal: 以及相关的事件代码: private void DataGrid_LoadingRow(object sender, System.Windows.Controls.DataGridRowEventArgs e) { e.Row.Header = “R” + ((e.Row.GetIndex()) + 1).ToString(); } private void dg_AutoGeneratingColumn(object sender, System.Windows.Controls.DataGridAutoGeneratingColumnEventArgs e) { string str = e.PropertyName; int num = int.Parse(e.PropertyName); e.Column.Header = “C” + (num + 1).ToString(); } 然后我必须把它放在我的真实项目中,这是一个风格的窗口。 所以我把同样非常简单的xaml(在这里添加背景和前景,我有一个渐变背景),以便xamls是: 效果是: 所以简而言之,FOREGROUND并没有设置在任何部分。 那是: 细胞 行标题 列标题 无处可去。 谁能告诉我为什么? 先谢谢帕特里克

如何根据wpf中的多个复选框选择在数据网格视图中显示项目

我开发了一个UI,如下所示: 我想在所选复选框的基础上显示数据网格中的项目。 当前场景:现在我的代码总是会显示最新复选框选中文件中的项目。 例如,如果我选择了第一个复选框,则第一个文件中存在的项目会正确显示,同样如果我选择了第二个复选框,则会显示第二个文件中的项目。 必需的用例 (不能这样做)如果同时选中了两个复选框,则应显示两个文件中的项目。 其次,如果我取消选中一个复选框,则不应显示该文件中的项目。 我的意思是应该根据复选框选择动态更新项目。 我的尝试 FrameworkElementFactory FF = new FrameworkElementFactory(typeof(CheckBox)); FF.SetBinding(CheckBox.BindingGroupProperty, new Binding(“Index”)); FF.SetBinding(CheckBox.IsCheckedProperty, new Binding(“FileSelected”) { UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }); FF.SetValue(FrameworkElement.HorizontalAlignmentProperty, HorizontalAlignment.Center); for (int i = 0; i {items = PopulateVariables(Resultnew[Dgrh.File_Name.ToString()]); DataGrid.ItemsSource = items; }; Dgrh.ThrowFileNotSlctdEvent += (sender2, args) => { }; A2lFilesPopulateList.Items.Add(Dgrh); } 定义 ObservableCollection items = new ObservableCollection(); […]

使用行选择将DataBase(.mdb / .accdb)导出到.csv

我应该做什么: 我需要加载数据库,搜索条目和导出选定的列。 问题: 我有一个DataGrid (没有DataGridView )列表并选择数据库条目,我无法得到任何解决方案只导出所选行; 作为分隔符。 编码我如何加载和列出数据库 using (OleDbConnection ODC = new OleDbConnection(“Provider = Microsoft.Jet.OLEDB.” + iOledDBVersion + “; Data Source = ” + connectionString)) { OleDbCommand ODCmd = new OleDbCommand(insertSQL); ODCmd.Connection = ODC; ODC.Open(); ODCmd.ExecuteNonQuery(); //Data-Adapter erstellen OleDbDataAdapter OleDbDataAdapter_Temp = new OleDbDataAdapter(insertSQL, ODC); OleDbCommandBuilder OleDbCommandBuilder_Temp = new OleDbCommandBuilder(OleDbDataAdapter_Temp); //Daten aus der Datenbank in […]

如何使用c#在wpf中设置动态数据网格中的单元格值

我有行id和列id dataGrid2.Items[row].Cells[column].Text = “text”; row = row index; column = column index;

如何在WPF KeyBinding中从DataGrid传递单元信息?

我有一个DataGrid列出MobileInfo集合。 DataGrid配置为SelectionUnit=”FullRow” 。 如果我单击任何行然后它选择整行,另外它指向单元格与鼠标被击中的边界。 键盘导航时边框选择移动例如: Left , Right , Up和Down 。 基于单元格选择,我希望传递有关单元格的信息。 请参阅具有输出屏幕的图像 在上面的屏幕截图中,Android被选中,基于键盘导航,单元格选择被更改。 我的XAML源代码: 注意:请勿更改DataGrid中的SelectionUnit 请提供您的解决方案,如何基于键盘导航传递单元信息 与XAML DataGrid关联的C#源代码 public class GridViewModel { public ObservableCollection MobileList { get; set; } public GridViewModel() { MobileList = new ObservableCollection(); MobileList.Add(new MobileInfo { MobileName = “iPhone”, MobileOS = “iOS” }); MobileList.Add(new MobileInfo { MobileName = “Xperia”, MobileOS = […]

使用多选时,WPF DataGrid列损坏

全部,我正在根据DataGrid选择的行数更新StatusBar 。 我是用MVVM做的。 相关的XAML如下 使用StatusBar定义 我包含此代码,以便您可以看到我在DataGrid上设置的选项; 正如我所说,function[在使用鼠标选择行时,所选行数在StatusBar的TextBlock更新]正在运行。 有关我用于执行此操作的基本机制的更多信息,请参阅https://stackoverflow.com/a/2615487/626442 。 现在,当我选择很多项目时,我注意到第一列[称为“代码”]未正确显示/呈现(如图所示,其中一半被裁剪掉)。 我已经设置了EnableRowVirtualization=”False”否则它只是平面不起作用,但为什么现在我的第一列无法正确渲染,如何使其正确渲染? 谢谢你的时间。 注意。 我试图设置EnableColumnVirtualization=”False”但这看起来更糟!? 我还设置了EnableColumnVirtualization=”True”和EnableRowVirtualization=”True” ,这极大地提高了性能并消除了渲染问题。 但是,这会打破StatusBar更新,它会在视图滚动时立即停止。

来自TextFile的Lifeupdate DataGrid具有良好的性能

实际状态: 我有一个带有4列的DataGrid (Icon | DateTime | LogLevel | Message) 我用它作为查看器来呈现LogFile条目。 打开Window ,UI滞后,很多条目逐个添加到DataGrid 。 注意:我已经在使用多个线程。 我的UI-Thread没有冻结。 它只是采取长期填充整个DataGrid 。 我想要的是: 在向用户展示之前,我更喜欢“预渲染”整个窗口之类的东西。 当我打开Window一次 – 每次我再次打开它时,它就不再有问题了。(不能渲染新的……?) 我试过的: 将Visibility设置为Hidden并等待( Thread.Sleep() )10秒然后设置Visibility = Visibility.Visible ; 在ViewModel-Constructor中将所有数据添加到我的DataGrid中 但这一切并没有真正解决它。 我甚至不确定它是C#代码还是只是Bindings …… 这可能是一个愚蠢的问题,但有没有办法在显示之前“预渲染” DataGrid及其Content ? 编辑: 我也使用一些DataTriggers来设置RowColor,但这可能不是问题。 这是我使用的一些代码: 入门级: public class LogEntry { public string LogLevel { get; set; } public string LogLevelIcon { […]

数据网格中没有绑定路径(wpf)

datagrid中的列类型是combobox,我创建了List,如果我用xaml写的话,列出这个ok,bit ItemsSource=”{Binding Path=combolist}” items列表为null List combolist = new List(); while (reader.Read()) { combolist.Add(reader.GetString(0)); } 为什么项目为空?