datagrid 相关问题

一个图形用户界面元素,用于显示数据的表格视图。

WPF 数据网格缓存

我创建了一个数据网格 并将可观察集合绑定到数据网格 ItemsSource。 清除 Observable 集合时,缓存内存不会被清除。 每次我清除并添加项目时我的...

回答 1 投票 0

根据内容更改数据网格单元格或行颜色

我通常使用此方法的触发器,如下所示。但是,在这种情况下,我有一个动态数据网格(来自数据库),无法为静态列设置触发器。 我通常使用此方法的触发器,如下所示。但是,在这种情况下,我有一个动态数据网格(来自数据库),无法为静态列设置触发器。 <DataGridTemplateColumn Width="*" Header="Id"> <DataGridTemplateColumn.CellStyle> <Style TargetType="{x:Type DataGridCell}"> <Style.Triggers> <DataTrigger Binding="{Binding Content, RelativeSource={RelativeSource Self}}" Value="ERROR"> <Setter Property="Background" Value="Red"/> </DataTrigger> </Style.Triggers> </Style> </DataGridTemplateColumn.CellStyle> </DataGridTemplateColumn> 如何为动态内容设置相同的触发器?我将数据网格内容设置为, private void setEFdatagrid() { using (FBaseContext context = new FBaseContext()) { var listItems = context.TLoggers.ToList(); loggerItems = new ObservableCollection<TLogger>(listItems); datagridLogger.ItemsSource = loggerItems; } } 您的方法是正确的,但您在 DataTrigger 绑定中缺少一个步骤。 DataGridCell.Content 它不是有界属性本身的值(我想是 TLogger.ID),而是保存该值的 ContentControl(例如 Textblock)。 因此,如果您想正确执行此绑定,您有两种方法:将 DataTrigger 绑定到属性,或将其绑定到 Content.Text(如果是文本单元格) 我认为最简单的解决方案是第二个,所以这段代码可以工作: <DataGridTemplateColumn Width="*" Header="Id"> <DataGridTemplateColumn.CellStyle> <Style TargetType="{x:Type DataGridCell}"> <Style.Triggers> <DataTrigger Binding="{Binding Content.Text, RelativeSource={RelativeSource Self}}" Value="ERROR"> <Setter Property="Background" Value="Red"/> </DataTrigger> </Style.Triggers> </Style> </DataGridTemplateColumn.CellStyle>

回答 1 投票 0

当 SelectionUnit 为“Cell”时显示 DataGrid 详细信息

我有一个带有两个 DataGridTextColumn 的 DataGrid,它们通过绑定获取其内容。 数据网格: 我有一个带有两个 DataGridTextColumn 的 DataGrid,它们通过绑定获取其内容。 数据网格: <Grid Margin="30"> <DataGrid Grid.Row="0" Name="MainDataGrid" AutoGenerateColumns="False" ColumnWidth="200" RowHeaderWidth="0" SelectionUnit="FullRow"> <DataGrid.Resources> <Style TargetType="DataGridColumnHeader"> <Setter Property="Height" Value="50"/> <Setter Property="Foreground" Value="White"/> <Setter Property="Background" Value="#172B4D"/> <Setter Property="FontSize" Value="22" /> <Setter Property="Padding" Value="10,0,0,0"/> <Style.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="ToolTip" Value="Click to sort."/> <Setter Property="Background" Value="#2582b0"/> </Trigger> </Style.Triggers> </Style> </DataGrid.Resources> <DataGrid.Columns> <DataGridTextColumn Header="Name" Binding="{Binding Name}"/> <DataGridTextColumn Header="Birthday" Binding="{Binding Birthday, StringFormat='{}{0:dd.MM.yyyy}'}" /> </DataGrid.Columns> <DataGrid.RowDetailsTemplate> <DataTemplate> <Grid Background="LightBlue"> <Grid.Resources> <Style TargetType="Label"> <Setter Property="Padding" Value="15,5"/> <Setter Property="FontWeight" Value="Bold"/> </Style> <Style TargetType="TextBox"> <Setter Property="Padding" Value="15,5"/> <Setter Property="BorderThickness" Value="0"/> <Setter Property="Background" Value="Transparent"/> </Style> </Grid.Resources> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Label Grid.Row="0" Grid.Column="0" Content="ID:" /> <Label Grid.Row="1" Grid.Column="0" Content="Name:" /> <Label Grid.Row="2" Grid.Column="0" Content="Geburtstag:" /> <TextBox Grid.Row="0" Grid.Column="1" Text="{Binding Id}" /> <TextBox Grid.Row="1" Grid.Column="1" Text="{Binding Name}" /> <TextBox Grid.Row="2" Grid.Column="1" Text="{Binding Birthday, StringFormat='{}{0:dd.MM.yyyy}'}" /> </Grid> </DataTemplate> </DataGrid.RowDetailsTemplate> </DataGrid> </Grid> 背后代码: public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); var users = new List<User> { new User() { Id = 1, Name = "John Doe", Birthday = new DateTime(1971, 7, 23) }, new User() { Id = 2, Name = "Jane Doe", Birthday = new DateTime(1974, 1, 17) }, new User() { Id = 3, Name = "Sammy Doe", Birthday = new DateTime(1991, 9, 2) }, }; MainDataGrid.ItemsSource = users; } } public class User { public int Id { get; set; } public string? Name { get; set; } public DateTime Birthday { get; set; } } 现在我希望详细信息的可见性根据单击的单元格(具有名称的单元格或具有生日的单元格)而变化,然后获得焦点。 我尝试将 SelectionUnit 属性更改为“Cell”,但随后不再显示详细信息。 我想知道是否可以仅显示一个单元格的详细信息。 我希望我已经以易于理解的方式解释了这个问题......

回答 0 投票 0

如何在 MUI DataGrid 中将附加属性传递给 renderCell?

我想将额外的道具(来自父组件的状态)传递给MUI DataGrid的renderCell函数,但在仔细阅读MUI文档后我不知道该怎么做。 例如我的父母

回答 0 投票 0

如何设置Winui 3 Community Toolkit DataGrid行的高度?

我正在尝试使用 CommunityToolkit.WinUI for DataGrid。 我正在尝试设置自定义行大小,但是它设置了行大小,但没有将该行内的文本调整为新大小。 好像...

回答 0 投票 0

DataGrid 不按 DESC 排序

Access中有一个数据库,我在搜索时获取数据,我想对结果进行排序,在按ASC排序时它可以工作,但在DESC上没有任何反应,这是MainWindow.xaml中的DataGrid代码: Access中有一个数据库,我在搜索时获取数据,我想对结果进行排序,在按ASC排序时它可以工作,但在DESC上没有任何反应,这是MainWindow.xaml中的DataGrid代码: <DataGrid Name="dataGrid" CanUserSortColumns="True" HorizontalAlignment="Center" Height="742" Margin="0,142,0,0" VerticalAlignment="Top" Width="1440" Sorting="dataGrid_Sorting"/> 这是与 DataGrid 交互的,使用 Button_Click 方法,在数据库中搜索数据: readonly string content = File.ReadAllText(@"C:\Users\User\source\repos\CG\BaseLink.txt"); private void Button_Click(object sender, RoutedEventArgs e) { string searchValue = searchBox.Text; // значение поиска, введенное в поле searchBox OleDbConnection connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + content + "nwind.mdb"); connection.Open(); // создаем объект OleDbCommand и выполняем параметризованный запрос OleDbCommand command = new OleDbCommand("SELECT * FROM Customers WHERE CustomerID LIKE ? OR CompanyName LIKE ? " + "OR ContactName LIKE ? OR ContactTitle LIKE ? OR Address LIKE ? OR City LIKE ? OR Region LIKE ?" + "OR PostalCode LIKE ? OR Country LIKE ? OR Phone LIKE ? OR Fax LIKE ?;", connection); command.Parameters.AddWithValue("@searchValue1", "%" + searchValue + "%"); command.Parameters.AddWithValue("@searchValue2", "%" + searchValue + "%"); command.Parameters.AddWithValue("@searchValue3", "%" + searchValue + "%"); command.Parameters.AddWithValue("@searchValue4", "%" + searchValue + "%"); command.Parameters.AddWithValue("@searchValue5", "%" + searchValue + "%"); command.Parameters.AddWithValue("@searchValue6", "%" + searchValue + "%"); command.Parameters.AddWithValue("@searchValue7", "%" + searchValue + "%"); command.Parameters.AddWithValue("@searchValue8", "%" + searchValue + "%"); command.Parameters.AddWithValue("@searchValue9", "%" + searchValue + "%"); command.Parameters.AddWithValue("@searchValue10", "%" + searchValue + "%"); command.Parameters.AddWithValue("@searchValue11", "%" + searchValue + "%"); OleDbDataAdapter dataAdapter = new OleDbDataAdapter(command); DataSet dataSet = new DataSet(); dataAdapter.Fill(dataSet, "Customers"); dataGrid.ItemsSource = dataSet.Tables["Customers"].DefaultView; connection.Close(); } 这是对数据进行排序的 dataGrid_Sorting 方法: private void dataGrid_Sorting(object sender, DataGridSortingEventArgs e) { DataGridColumn column = e.Column; // Определение направления сортировки ListSortDirection direction; if (column.SortDirection == null) { // Сортировка не была применена ранее - устанавливаем направление сортировки по умолчанию direction = ListSortDirection.Ascending; } else if (column.SortDirection == ListSortDirection.Ascending) { // Сортировка применена в направлении по возрастанию - меняем направление на убывание direction = ListSortDirection.Descending; } else { // Сортировка применена в направлении по убыванию - меняем направление на возрастание direction = ListSortDirection.Ascending; } // Установка направления сортировки column.SortDirection = direction; // Создание команды для выполнения запроса к базе данных Access string sortOrder = (direction == ListSortDirection.Ascending) ? "ASC" : "DESC"; OleDbCommand command = new OleDbCommand("SELECT * FROM Customers ORDER BY [" + column.SortMemberPath + "] " + sortOrder); // Выполнение запроса к базе данных Access и получение данных в виде DataTable DataTable dataTable = new DataTable(); using (OleDbConnection connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + content + "nwind.mdb")) { connection.Open(); command.Connection = connection; using (OleDbDataAdapter adapter = new OleDbDataAdapter(command)) { adapter.Fill(dataTable); } } // Обновление источника данных ItemsSource для DataGrid dataGrid.ItemsSource = dataTable.DefaultView; // Обновление данных в DataGrid dataGrid.Items.Refresh(); } 与AI合作,这是第一个项目,请勿重击,谢谢帮助! 我正在尝试在 DataGrid 中实现排序,并寻求帮助来实现此功能 要对 DataGrid 中的数据进行分组、排序和筛选,请将 DataGrid 绑定到支持这些操作的 ICollectionView 实现。 ICollectionView实现接口INotifyCollectionChanged,DataView未实现此接口。 如何:对 DataGrid 控件中的数据进行分组、排序和筛选 如果您的 [dataTable] 变量填充了正确的数据(按 DESC 顺序),我认为您需要再次绑定数据。像这样的东西: dataGrid.Columns.Clear(); dataGrid.DataSource = dataTable; 但顺便说一句,您不需要再次引用数据库来排序数据。 您可以使用 Sort() 方法来执行此操作(dataGridView1.Sort(Column, Direction))。 欲了解更多信息,请参阅此链接: learn_microsoft_com

回答 2 投票 0

将树视图中的选定项目链接到数据网格

我使用 Josh Smith 的 MVVM 模型创建了一个树视图,但我想创建一个相邻的数据网格,该数据网格会更改以表示树视图中选择的组件。 但是,我不知道如何

回答 0 投票 0

如何使WPF中数据网格的最后一行只读

我有一个可编辑的数据网格,其中有月份的列和根据搜索条件更改的几行。可以在这些单元格中输入数字,这些数字的总数是广告...

回答 1 投票 0

Datagrid - 使用 Reactjs 将 Material UI 中的总计数 100003 格式化为 1M+?

我正在使用reactjs在Mui中实现Datagrid。我有1M数据。 所以我目前显示的总数为 100000。 有什么方法可以将总数显示为 1M+ 或 1000+ 或任何其他速记方法来显示...

回答 2 投票 0

Mudblazor 更改 DataGrid 表单布局

我正在开发 Blazor 项目,使用 Mudblazor Datagrid 编辑一些数据。表格的布局不容易阅读。是否可以设计表单的样式?我想增加宽度...

回答 1 投票 0

Dev Extreme 数据网格在 Angular 中不起作用

dev 极端的角度 我正在将 dev Extreme 与我的 Angular 应用程序集成。 这是我遵循的链接并通过文档完成所有设置。 https://js.devexpress.com/Documentation/Guide/

回答 0 投票 0

我如何阻止或冻结 dgv vb.net 中的行?

Private Sub DataGridView1_CellMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) 处理 DataGridView1.CellMouseClick Dim a As String = DataGridView1.Item(0, DataGridView1.Curre...

回答 0 投票 0

Wpf 数据网格在将项目添加到 DataSource 时不会在运行时反映

多年来我一直在使用 Stackoverflow 来解决不同的技术问题,我通常最终会找到答案。我无法解决这个问题,已经一个多星期了

回答 1 投票 0

基于 ComboBox 选择,使用 DataGrid CellTemplate 中的 DataTrigger 将另一个 ComboBox 更改为 TextBox

我有一个 DataGrid,我在其中使用 CellTemplate 来定义各种数据列。 像下面一样 <

回答 1 投票 0

从 WPF 中的 DataGridCellInfo 中获取项目

我在 WPF 中有一个 DataGrid。 DataGridCellInfo 包含 Column、IsValid 和 Item。 我试过: var foo = foobar.Item.Name var foo2 = foobar.Item[名称] 我应该如何从现场获得价值...

回答 0 投票 0

Canvas 围绕 yaxis 缩放 =-1 WPF,带有缩放、平移和拖动选择

我正在实现 wpf 画布,它围绕 yaxis = -1 缩放,对画布中添加的线条进行缩放、平移和拖动选择,但目前我正面临平移画布和选择

回答 0 投票 0

Oro 数据网格过滤器无法正常工作

我的数据网格中有这样的过滤器: 过滤器: 列: 启用: 类型:布尔值 数据名称:u.enabled 选项: ...

回答 0 投票 0

WinUI 3 DataGrid - 如何共享 DataGrid.Columns 定义

在 WinUI 3 中,我想在具有相同列定义的页面上创建两个 DataGrid。基本上以下两个具有不同的 ItemsSource 值但引用相同类型的数据。 (还有

回答 0 投票 0

React Material UI Datagrid rowMouseEnter 不触发

当我将鼠标悬停在 Datagrid 中的任何行上时,我希望“分析”按钮从概述的变体更改为包含的变体。当该行悬停时,我无法触发任何事件,也不会...

回答 2 投票 0

如何在编辑单元格时立即更新 WPF DataGrid 中的绑定值?

我正在 MVVM 应用程序中使用 WPF DataGrid。我已将 DataGrid 绑定到我的 ViewModel 中的 ObservableCollection。当前,当用户编辑 DataGrid 中的单元格时,绑定值 ...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.