datagrid 相关问题

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

如何使用 PowerShell、WPF 和 XAML 从 DataGrid 中删除选定的行?

您好, 我对使用 PowerShell 的 WPF 有点陌生。我的实际要求是在单击按钮时从 DataGrid 中删除选定的行。因此,单击按钮后,选定的行应该消失...

回答 1 投票 0

WPF DataGrid 默认排序不起作用

我有一个 DataGrid,其中包含 XAML 列,如下所示: 我有一个 DataGrid,其中包含 XAML 列: <DataGridTextColumn Header="Time" Binding="{Binding Date, StringFormat='yyyy-MM-dd HH:mm:ss'}" SortMemberPath="Date" SortDirection="Descending" Width="130" CanUserResize="True" /> <DataGridTextColumn Header="Level" Binding="{Binding Level}" Width="60" CanUserResize="True" /> <DataGridTextColumn Header="Source" Binding="{Binding Logger}" Width="150" CanUserResize="True" /> <DataGridTextColumn Header="Message" Binding="{Binding Message}" Width="*" CanUserResize="True" /> 我将其绑定到 ObservableCollection<EalsLogEvent>,其中输入 EalsLogEvent.Date DateTime: public ObservableCollection<EalsLogEvent> LogEvents { get { return _logEvents; } } 网格视图模型使用计时器来刷新自身,网格的一切看起来都很好,除了在应用程序启动时首次加载时。然后,Time 列似乎按降序排序,但实际上是按升序排序。 为了正确排序,我必须单击列标题两次;第一次将顺序更改为升序,现在与列的内容匹配。第二次单击列标题会将其排序顺序更改回降序,这次它对列内容进行正确排序,即降序。 如果我在 _logEvents 刷新时使用 LINQ 对集合进行排序,我会丢失用户通过单击列标题为该列设置的任何顺序。如果我必须让视图告诉模型 LINQ 排序应该使用哪个顺序,那就有点糟糕了。 您可以在 XAML 中使用 CollectionViewSource 来定义默认排序。 假设我们有一个视图模型: public class ViewModel : INotifyPropertyChanged { public ObservableCollection<Item> Items { get; private set; } } 我们可以为 CollectionView 集合创建自定义 Items: <Window xmlns:l="clr-namespace:YourNamespace" xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"> <Window.DataContext> <l:ViewModel/> </Window.DataContext> <Window.Resources> <CollectionViewSource Source="{Binding Items}" x:Key="GridItems"> <CollectionViewSource.SortDescriptions> <scm:SortDescription PropertyName="Date" Direction="Descending"/> </CollectionViewSource.SortDescriptions> </CollectionViewSource> </Window.Resources> <DataGrid ItemsSource="{Binding Source={StaticResource GridItems}}" AutoGenerateColumns="False"> <DataGrid.Columns> <DataGridTextColumn Header="Time" Binding="{Binding Date, StringFormat='yyyy-MM-dd HH:mm:ss'}" Width="130" CanUserResize="True" /> <DataGridTextColumn Header="Level" Binding="{Binding Level}" Width="60" CanUserResize="True" /> <DataGridTextColumn Header="Source" Binding="{Binding Logger}" Width="150" CanUserResize="True" /> <DataGridTextColumn Header="Message" Binding="{Binding Message}" Width="*" CanUserResize="True" /> </DataGrid.Columns> </DataGrid> </Window> 使用这种方法,您的底层源集合(本例中为Items)将不会受到影响,排序仅发生在视图中。 正如您可以在 MSDN 中阅读的那样: 您可以将集合视图视为绑定顶部的层 源集合,允许您导航和显示 基于排序、过滤和分组查询的集合,全部无需 必须操纵底层源集合本身。如果 源集合实现了 INotifyCollectionChanged 接口, CollectionChanged 事件引发的更改将传播到 意见。 您还应该注意以下事项: 所有集合都有一个默认的 CollectionView。 WPF 始终绑定到 视图而不是集合。如果直接绑定到集合, WPF 实际上绑定到该集合的默认视图。 因此,使用 CollectionViewSource,您只需为您的集合定义一个自定义视图。 您应该在视图模型中创建 2 个属性: private ObservableCollection<EalsLogEvent> logEvents = new ObservableCollection<EalsLogEvent>(); private ICollectionView logEventsView; public ObservableCollection<EalsLogEvent> LogEvents { get { return this.logEvents; } set { this.SetProperty(ref this.logEvents, value); } } public ICollectionView LogEventsView { get { if (this.logEventsView == null) { this.logEventsView= CollectionViewSource.GetDefaultView(this.LogEvents); this.logEventsView.SortDescriptions.Add(new SortDescription("Time", ListSortDirection.Descending)); } return this.logEventsView; } } 将 DataGrid 绑定到 LogEventsView,并使用 LogEvents 添加或删除项目。 这允许默认排序和用户排序。

回答 2 投票 0

如何自动调整 WPF 数据网格高度以填充标签页面

我需要让 DataGrid 高度自动扩展以满足其所在选项卡页的高度。目前,DataGrid 的高度仅扩展以满足其包含数据的所有行的高度。 这是一个

回答 1 投票 0

为什么 WPF 的 DataGrid 在使用相同的代码重新初始化时表现不同?

我有一个 UserControl,其以下 Xaml 表示一个带有用于测试的按钮的简单 DataGrid: ...

回答 1 投票 0

如何滚动到 wpf mvvm 中数据网格中新添加的行

我有一个绑定可观察集合的数据网格。当我单击添加新按钮时,我会将新行添加到集合中。我如何实用地滚动到新行。 数据网格 XMAL 我有一个绑定可观察集合的数据网格。当我单击添加新按钮时,我会将新行添加到集合中。我如何实用地滚动到新行。 数据网格XMAL <DataGrid SelectedIndex="{Binding SelectedIntex}" IsEnabled="{Binding IsKeySet}" CanUserDeleteRows="False" CanUserAddRows="False" Name="dgwTemplateDetails" SelectionMode="Single" ItemsSource="{Binding OrderTemplateList, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding SelectedOrderTemplate}" IsReadOnly="False" AutoGenerateColumns="False" Width="auto"> <DataGrid.Columns> <DataGridTextColumn Header="Srl No" Visibility="Hidden" Binding="{Binding SrlNo}"/> <DataGridTextColumn Header="Act Code" Width="75" Binding="{Binding ActCode, UpdateSourceTrigger=PropertyChanged}"/> <DataGridTextColumn Header="Act Name" Width="275" Binding="{Binding ActName, UpdateSourceTrigger=PropertyChanged}"/> <DataGridTextColumn Header="No. Of Days" Width="75" Binding="{Binding NoOfDays, UpdateSourceTrigger=PropertyChanged}"/> <DataGridCheckBoxColumn Header="Is Cutting" Width="75" Binding="{Binding IsCutSelected, UpdateSourceTrigger=PropertyChanged}" /> </DataGrid.Columns> </DataGrid> VM 添加行功能 if (ValidateHeader()) { if (OrderTemplateList == null) this.OrderTemplateList = new ObservableCollection<EventManagementTemplate>(); EventManagementTemplate obJEvent = new EventManagementTemplate(); obJEvent.BuyerCode = this.BuyerCode; this.OrderTemplateList.Add(obJEvent); int no = 1; this.OrderTemplateList.ToList().ForEach(m => m.SrlNo = no++); } 您需要执行以下操作: 为您的 dataGrid 命名,以便您可以在代码隐藏文件(与包含数据网格的 xaml 文件配对的 .cs 文件)中访问它 向您的视图模型添加一个委托,以供 AddRow 函数调用 - 该委托应将您想要滚动到视图中的对象作为参数。 让包含数据网格的背后代码订阅委托==>基本上,背后的代码是提供对视图模型的回调。回调后面的代码将是滚动到新项目的代码。 回调应调用数据网格的 ScrollIntoView 函数 (http://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.scrollintoview(v=vs.110).aspx) 在视图模型的添加行函数结束时(添加项目后),使用要滚动到视图中的项目调用委托。 示例代码: public class MyViewModel { // declare the delegate signature... delegate void ScrollIntoViewDelegateSignature(EventManagementTemplate objEvent); // create a pointer to the delegate that can be set by the code behind... public ScrollIntoViewDelegateSignature ScrollIntoView {get; set;} protected AddRow() { .. your code here // call the delegate... if (ScrollIntoView != null) ScrollIntoView(objEvent) } } public class MyControlOrWindowThatContainsDataGrid : UserControl/ChildWindow/Page { public void Initialize() { ...your code here // set the scrollIntoView delegate... myViewModel.ScrollIntoView = ScrollIntoView; } // create a ScrollIntoView function // ==> the return value and parameters MUST match the delegate signature public void ScrollIntoView(EventManagementTemplate objEvent) { myDataGrid.ScrollIntoView(objEvent); } } 参考 http://msdn.microsoft.com/en-us/library/900fyy8e.aspx 我认为最好使用事件来做到这一点,但这更复杂。 以下是有关如何使用事件的 msdn 文档:http://msdn.microsoft.com/en-us/library/awbftdfh.aspx 您可以为 DataGrid 创建行为。在此代码中,仅当新行添加到集合中时,它才会滚动到网格的最后一行。您可以根据任何条件修改它。有时需要添加一些延迟。如果不需要,您可以排除。 public class AutoScrollToEndBehavior : Behavior<DataGrid> { private DateTime _lastCollectionChangedTime = DateTime.MinValue; protected override void OnAttached() { base.OnAttached(); SubscribeToCollectionChanged(); } protected override void OnDetaching() { base.OnDetaching(); UnsubscribeFromCollectionChanged(); } private void SubscribeToCollectionChanged() { if (AssociatedObject.Items is ICollectionView collectionView) { collectionView.CollectionChanged += OnCollectionChanged; } } private void UnsubscribeFromCollectionChanged() { if (AssociatedObject.Items is ICollectionView collectionView) { collectionView.CollectionChanged -= OnCollectionChanged; } } private void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { if (e.Action == NotifyCollectionChangedAction.Add) { _lastCollectionChangedTime = DateTime.Now; Task.Delay(100).ContinueWith(_ => { if ((DateTime.Now - _lastCollectionChangedTime).TotalMilliseconds > 100) { ScrollToEnd(); } }, TaskScheduler.FromCurrentSynchronizationContext()); } } private void ScrollToEnd() { if (AssociatedObject.Items.Count > 0) { var lastItem = AssociatedObject.Items[AssociatedObject.Items.Count - 1]; AssociatedObject.Dispatcher.Invoke(() => { AssociatedObject.ScrollIntoView(lastItem); }); } } } 在 XAML 中, 在 datagrid () 的结束标记上方添加以下代码 <b:Interaction.Behaviors> <behavior:AutoScrollToEndBehavior/> </b:Interaction.Behaviors> </DataGrid> 在 DataGrid 中添加项目后尝试此操作: dgwTemplateDetails.ScrollIntoView(obJEvent); 此行将滚动到当前添加的元素。

回答 3 投票 0

Matplotlib Streamplot 用于不均匀(曲线)网格

我试图在曲线网格上绘制流线,但出现错误,结果如下: /usr/local/lib/python2.7/dist-packages/matplotlib/streamplot.pyc 中的streamplot(轴,x,y,u,v,密度,

回答 2 投票 0

如何向 DataGrid 行 MUI 添加额外组件

我正在尝试向 MUI DataGrid 中的行添加额外的组件。 例如,在下面的 DataGrid 中,我想在行的主要内容下方添加一些文本。 (注意行 ID 5 的名字列的 v...

回答 2 投票 0

WPF 水平数据网格

我想要一个水平方向的WPF DataGrid,有人知道解决方案吗?

回答 6 投票 0

函数(ServerData)中的 MudDataGrid FilterDefinitions 和 SortDefinitions 不起作用

我有这个方法可以使用 IQueryiable 动态排序和过滤: GridState 状态 = null; 私有异步任务> LoadData(GridState<

回答 1 投票 0

如何从文本框wpf在数据网格中创建指定数量的列

我希望能够在文本框中写入一个数字(最好仅从 1 到 10),并在数据网格中为其创建一定数量的列。我怎样才能做到这一点?这就是我所拥有的...

回答 1 投票 0

Devexpress ColumnChooser 在 Angular 中导航时跟踪所选列

我有一个场景,用户可以使用列选择器隐藏/显示列,导航离开,然后当他/她返回到带有网格的页面时,隐藏在

回答 2 投票 0

WPF-社区 MVVM 工具包 - 将中继命令发送到 ViewModel,使用 DataGrid 的 SelectedItem 作为命令参数,避免代码隐藏事件

我被困在这里,找不到类似的东西! 在 WPF 应用程序和社区 MVVM 工具包中,我有 仪表板.xaml 我被困在这里,找不到类似的东西! 在 WPF 应用程序和社区 MVVM 工具包中,我有 仪表板.xaml <Window x:Class="MyIatreio.MVVM.Views.DashBoard" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:MyIatreio.MVVM.Views" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:nacontrols="clr-namespace:MyIatreio.NAControls" xmlns:viewmodels="clr-namespace:MyIatreio.MVVM.ViewModels" xmlns:converters="clr-namespace:MyIatreio.MVVM.Converters" Title="DashBoard" Width="800" Height="450" d:DataContext="{d:DesignInstance Type=viewmodels:DashBoardViewModel}" Loaded="Window_Loaded" ShowInTaskbar="False" WindowState="Maximized" WindowStartupLocation="CenterScreen" mc:Ignorable="d"> <Window.Resources> <converters:DataGridRowToVisitConverter x:Key="DataGridRowToVisit" /> </Window.Resources> <Grid> <DataGrid x:Name="VisitsDataGrid" AutoGenerateColumns="True" CanUserAddRows="False" IsReadOnly="True" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Visits, Mode=TwoWay}" SelectedItem="{Binding SelectedVisit, Mode=TwoWay}" SelectionChanged="VisitsDataGrid_SelectionChanged" SelectionMode="Single" DataContext="{Binding}"> <DataGrid.Resources> <ContextMenu x:Key="RowContextMenu"> <MenuItem Header="Edit" Command="{Binding EditVisitCommand}" CommandParameter="{Binding SelectedItem, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" /> <!-- Your ContextMenu Items --> </ContextMenu> </DataGrid.Resources> <DataGrid.RowStyle> <Style TargetType="DataGridRow"> <Setter Property="ContextMenu" Value="{StaticResource RowContextMenu}" /> </Style> </DataGrid.RowStyle> </DataGrid> </Grid> </Window> 仪表板.xaml.cs using CommunityToolkit.Mvvm.Messaging; using Microsoft.EntityFrameworkCore.Diagnostics; using MyIatreio.MVVM.Messages; using MyIatreio.MVVM.Models; using MyIatreio.MVVM.ViewModels; using MyIatreio.Utils.Dialogs; using Syncfusion.Data.Extensions; using System.ComponentModel; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Input; using System.Windows.Media; namespace MyIatreio.MVVM.Views; public partial class DashBoard : Window { private readonly DashBoardViewModel _dashboardViewModel; public DashBoard() { InitializeComponent(); _dashboardViewModel = new DashBoardViewModel(); DataContext = _dashboardViewModel; } private void Close_Clicked(object sender, RoutedEventArgs e) { this.Close(); } private async void Window_Loaded(object sender, RoutedEventArgs e) { await _dashboardViewModel.LoadData(); } // etc !! } 在 DashBoardViewModel.cs 中 using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Messaging; using Microsoft.EntityFrameworkCore; using MyIatreio.DataAccess; using MyIatreio.DataAccess.Context; using MyIatreio.DataAccess.Repositories; using MyIatreio.MVVM.Messages; using MyIatreio.MVVM.Models; using MyIatreio.MVVM.Views; using Syncfusion.DocIO.DLS; using System.Collections.ObjectModel; using System.Diagnostics; using System.Windows.Controls; using System.Windows.Input; namespace MyIatreio.MVVM.ViewModels; public partial class DashBoardViewModel : ObservableRecipient { private readonly UnitOfWork _uoW; // SelectedVisit [ObservableProperty] private Visit _selectedVisit; [ObservableProperty] private int _visitsCount; [ObservableProperty] private ObservableCollection<Visit> _visits; public DashBoardViewModel() { SelectedVisit = new Visit(); _uoW = new(new AppDbContext()); Visits = []; } // EditVisit command with param either Visit selectedVisit or Object obj // any of the following is accepted // // public void EditVisit(Visit visit) // public void EditVisit(Object obj) [RelayCommand] public void EditVisit(Object obj) { Visit selectedVisit = (Visit)obj; if (selectedVisit == null) return; // etc } [RelayCommand] private void DeleteVisit(Visit visit) { Visits.Remove(visit); _uoW.Visits.Remove(visit); _uoW.SaveChanges(); } // etc } 我想避免使用事件和背后的代码。 我希望当用户连续双击时以及当用户右键单击一行并在弹出的 ContextMenu 上选择 EditVisit 时调用 viewmodel 的 EditVisit 命令!! 多次尝试设法将 DataGrid 的选定行作为 DashBoard.xaml 文件中的 CommandParameter 传递,并将其直接发送到视图模型(不通过后面的代码),但都失败了。必须有一种方法仅从 xaml 中将此选定行作为 CommandParameter 传递。 我希望 WPF 和社区 MVVM 工具包专家能够指导我如何将选定的行(作为访问或作为对象)传递到视图模型 有人可以帮助我吗,因为我在 Google 或 ChatGPT 3.5 中都找不到类似的内容 提前谢谢 您需要将您的属性与您的命令关联起来。尝试以下操作: // SelectedVisit [ObservableProperty] [NotifyCanExecuteChangedFor(nameof(EditVisit))] private Visit _selectedVisit;

回答 1 投票 0

WPF DataGrid 文件名列允许直接文本输入或按钮通过对话框浏览

我有一个带有 DataGrid 的 WPF 应用程序,用户将在其中输入文件名。我希望他们能够通过双击直接输入文件名,或者单击“浏览”按钮启动打开的...

回答 1 投票 0

如何在WPF中设置DataGrid的数据源?

我需要将数据库中的表设置为 WPF 中 GridGrid 的数据源。在 Windows 窗体中,该属性称为 DataSource,但在 WPF 中不存在这样的属性,那么我该怎么做呢?

回答 5 投票 0

DataGrid 未显示数据表中的数据

所以我已经进入wpf 3天了,我无法弄清楚为什么数据表值没有显示在数据网格中,Windows窗体中的datagridview不是这种情况,这......

回答 0 投票 0

如何在@angular/google-maps的信息窗口中使用角度材质数据网格

我在 Angular17 中使用@angular/google-maps。单击任何标记时,我想使用角度材料数据网格显示信息窗口内的数据(https://material.angular.io/components/grid-list/

回答 1 投票 0

如何在WPF中动态创建数据网格?

我在 XAML 中有以下数据网格: 我在 XAML 中有以下数据网格: <DataGrid ItemsSource="{Binding View}" AutoGenerateColumns="False" IsReadOnly="True" GridLinesVisibility="None" CanUserAddRows="False" CanUserDeleteRows="False" CanUserResizeColumns="False" CanUserResizeRows="False" CanUserReorderColumns="False" > <DataGrid.ColumnHeaderStyle> <Style TargetType="{x:Type DataGridColumnHeader}"> <Setter Property="FontWeight" Value="Bold" /> <Setter Property="FontSize" Value="12" /> </Style> </DataGrid.ColumnHeaderStyle> <DataGrid.Columns> <DataGridTextColumn Header="Type" Width="200" FontSize="12" Binding="{Binding Path=Name}" /> <DataGridTemplateColumn Header="Ingredients" Width="*"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <DataGrid ItemsSource="{Binding Ingredients}" AutoGenerateColumns="False" IsReadOnly="True" GridLinesVisibility="None" CanUserAddRows="False" CanUserDeleteRows="False" CanUserResizeColumns="False" CanUserResizeRows="False" CanUserReorderColumns="False" > <DataGrid.ColumnHeaderStyle> <Style TargetType="{x:Type DataGridColumnHeader}"> <Setter Property="FontWeight" Value="Bold" /> <Setter Property="FontSize" Value="12" /> </Style> </DataGrid.ColumnHeaderStyle> <DataGrid.Columns> <DataGridTextColumn Header="Ingredients" Width="*" FontSize="12" Binding="{Binding Path=IngredientName}"/> <DataGridTextColumn Header="Quantite" Width="*" FontSize="12" Binding="{Binding Path=Qty}"/> </DataGrid.Columns> </DataGrid> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> 我正在尝试找到一种动态创建数据网格(代码内)的方法,以便我可以创建它的多个副本并在运行时将其绑定到不同的数据源。 这可能吗?有人知道我该如何处理像这样复杂的数据网格吗? 首先,将尽可能多的不同设置移至可重用的 Styles 和 DataTemplates 中,在 DataGrid 本身中留下很少的内容: <UserControl ... > <UserControl.Resources> <Style x:Key="GridHeaderStyle" TargetType="{x:Type DataGridColumnHeader}"> <Setter Property="FontWeight" Value="Bold" /> <Setter Property="FontSize" Value="12" /> </Style> <Style x:Key="ReadOnlyGridStyle" TargetType="{x:Type DataGrid}" > <Setter Property="AutoGenerateColumns" Value="False" /> <Setter Property="IsReadOnly" Value="True" /> <Setter Property="GridLinesVisibility" Value="None" /> <Setter Property="CanUserAddRows" Value="False" /> <Setter Property="CanUserDeleteRows" Value="False" /> <Setter Property="CanUserResizeColumns" Value="False" /> <Setter Property="CanUserResizeRows" Value="False" /> <Setter Property="CanUserReorderColumns" Value="False" /> <Setter Property="ColumnHeaderStyle" Value="{StaticResource GridHeaderStyle}" /> </Style> <DataTemplate x:Key="IngredientsCellTemplate"> <DataGrid ItemsSource="{Binding Ingredients}" Style="{StaticResource ReadOnlyGridStyle}"> <DataGrid.Columns> <DataGridTextColumn Header="Ingredients" Width="*" FontSize="12" Binding="{Binding Path=IngredientName}" /> <DataGridTextColumn Header="Quantite" Width="*" FontSize="12" Binding="{Binding Path=Qty}" /> </DataGrid.Columns> </DataGrid> </DataTemplate> </UserControl.Resources> <!-- A DataGrid using our Styles: --> <DataGrid ItemsSource="{Binding View}" Style="{StaticResource ReadOnlyGridStyle}" > <DataGrid.Columns> <DataGridTextColumn Header="Type" Width="200" FontSize="12" Binding="{Binding Path=Name}" /> <DataGridTemplateColumn Header="Ingredients" Width="*" CellTemplate="{StaticResource IngredientsCellTemplate}" /> </DataGrid.Columns> </DataGrid> </UserControl> 然后使用现有样式在代码隐藏中创建新的 DataGrid 会变得更加容易: var datagrid = new DataGrid(); datagrid.Style = FindResource("ReadOnlyGridStyle") as Style; datagrid.Columns.Add(new DataGridTextColumn() { Header = "Type", Width = new DataGridLength(200), FontSize = 12, Binding = new Binding("Name") }); datagrid.Columns.Add(new DataGridTemplateColumn() { Header = "Ingredients", Width = new DataGridLength(1, DataGridLengthUnitType.Star), CellTemplate = FindResource("IngredientsCellTemplate") as DataTemplate }); datagrid.ItemsSource = ...

回答 1 投票 0

C#、WPF、将 List<string> 绑定到 DataGrid

我无法将列表绑定到 DataGrid。它应该尽可能简单。我是 WPF 新手,这是为了我的个人教育。 我有一个视图(编辑器)、视图模型(VMText)和数据(JustText)...

回答 3 投票 0

数据网格 WPF 中的单元格验证基于其他行中的单元格值

我想创建一个简单的时间表应用程序,其中用户可以拥有不同的角色,并且根据角色他可以更新和查看时间表。为了更新时间表,我实施了 da...

回答 1 投票 0

WPF DataGrid ScrollIntoView 不会滚动到请求的行

我正在使用 WPF DataGrid,它有大约 50 行。我正在使用 MVVM 模式。 用户可以搜索一行中的某些文本,数据网格应突出显示该行(不一定选择该行)并滚动到该行...

回答 3 投票 0

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