标签: wpfdatagrid

WPF Datagrid"全选"按钮 - "全部取消选择"?

我想知道是否可以在数据网格左上角的"全选"按钮中添加功能,以便它也可以取消选择所有行?我有一个方法附加到一个按钮来执行此操作,但如果我可以从全选按钮触发此方法,以保持功能在视图的相同部分,这将是很好的.这个"全选"按钮是否可以添加代码,如果是,那么如何进入按钮?我找不到任何例子或建议.

.net c# wpf datagrid wpfdatagrid

10
推荐指数
1
解决办法
1万
查看次数

用于检查当前是否编辑了DataGrid的单元格的代码

是否有简单的可能性来检查DataGrid当前是否在EditMode中(无需订阅BeginningEdit和CellEditEnding)

wpf wpfdatagrid

10
推荐指数
2
解决办法
8192
查看次数

WPF:从DataGrid复制

我想将复制功能添加到WPF DataGrid.

  1. "复制"选项应出现在右键单击菜单中
  2. 它应该复制所选单元格的显示文本.(我使用的是只读文本列.)

wpf wpfdatagrid

10
推荐指数
1
解决办法
6955
查看次数

WPF DataGrid行标题可见性错误

我使用DataGrid显示多个字段,其中一个是多行描述.网格显示数据就好了,直到我尝试通过设置隐藏标题行HeadersVisibility="Column".标题行消失但是当我滚动时,行标题会重新出现一些随机行.

我已将其缩小到显示多行描述的列.只要我离开这一栏,我就没有这个问题.我试过用两者分开线"\r\n","\n"但都没有工作.DataGrid是否支持多行文本字段?

下面是一张图片,显示了正在发生的事情以及我用来创建网格的XAML.

DataGrid行标题错误图像

<DataGrid DataContext="{StaticResource personRepository}"
          ItemsSource="{Binding PersonList, Mode=OneWay}"
          AutoGenerateColumns="False"
          HeadersVisibility="Column"
          CanUserSortColumns="False"
          SelectionMode="Extended"
          IsReadOnly="True">

    <DataGrid.Columns>
        <DataGridTextColumn Header="Id" Width="80" Binding="{Binding Id, Mode=OneWay}" />
        <DataGridTextColumn Header="First Name" Width="150" Binding="{Binding FirstName, Mode=OneWay}" />
        <DataGridTextColumn Header="Last Name" Width="150" Binding="{Binding LastName, Mode=OneWay}" />
        <DataGridTextColumn Header="Description" Width="*" Binding="{Binding Description, Mode=OneWay}" />
    </DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

.net c# wpf xaml wpfdatagrid

10
推荐指数
1
解决办法
1万
查看次数

WPF DataGrid不会在PropertyChanged上更新

我在使用NotifyPropertyChanged单击按钮时更新我的​​数据网格时遇到问题.如果我在代码中设置DataGrid.ItemsSource,它可以工作,但如果我在xaml中设置它,它就不会.这里是&xaml背后的一些代码:

namespace MyWpfDataBindingLab
{
public partial class NpcWindow : Window
{
    DataCollection dc = new DataCollection();

    public NpcWindow()
    {
        InitializeComponent();
        //command binding code
        //...
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        //if i set the ItemsSource here, updating of the UI works
        //dataGrid1.ItemsSource = dc;
    }

    private void CmdCollectionChangedExecute(object sender, ExecutedRoutedEventArgs e)
    {
        foreach (SampleClass s in dc)
        {
            s.Property1 = "changed";
            s.Property3 = "changed";
            s.Property3 = "changed";
            break;
        }

        dc.Add(new SampleClass("new sample 1", "new sample 2", "new sample …
Run Code Online (Sandbox Code Playgroud)

c# data-binding wpf inotifypropertychanged wpfdatagrid

10
推荐指数
2
解决办法
3万
查看次数

WPF DataGrid AlternatingRowBackground和RowStyle优先级

如何让我RowStyle获得申请AlternatingRowBackground?我想要的物品,有IsOrange作为trueOrange背景,无论交替行背景,这是不是这种情况目前的.

XAML:

<DataGrid Name="g"
    AlternatingRowBackground="Blue" 
    AlternationCount="2" 
    ...
    SelectionMode="Single">
    <DataGrid.RowStyle>
        <Style TargetType="DataGridRow">
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsOrange}" Value="Y">
                    <Setter Property="Background" Value="Orange" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.RowStyle>
    ...
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

wpf wpfdatagrid

10
推荐指数
1
解决办法
1万
查看次数

WPF数据网格行验证

WPF 4.0 DataGrids中似乎存在一个错误.

我正在实现IDataErrorInfo我的对象,我有ObservableCollection一个datagrid绑定到.我已经ValidatesOnDataErrors=True设置了列但没有设置行.我有UpdateSourceTrigger="PropertyChanged"

验证在逐个细胞级别上完美地起作用.但是,当您使单元格无效时,转到任何其他单元格,然后返回到无效单元格并输入有效数据,该单元格变为有效,但该行有效时该行仍然无效.

validation wpf wpfdatagrid

10
推荐指数
1
解决办法
6226
查看次数

WPF数据网格绑定与自定义列

目前我正在研究WPF应用程序(使用MVVM),我在其中显示数据DataGridView.

<DataGrid RowHeaderWidth="0" ItemsSource="{Binding PartsList,UpdateSourceTrigger=PropertyChanged}" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Item Name" IsReadOnly="True" Width="*" Binding="{Binding ProductName}"></DataGridTextColumn>
        <DataGridTextColumn Header="Model Name" IsReadOnly="True" Width="*" Binding="{Binding CarModelName}"></DataGridTextColumn>
        <DataGridTextColumn Header="Company Name" IsReadOnly="True" Width="*" Binding="{Binding CompanName}"></DataGridTextColumn>
        <DataGridTextColumn Header="Price" IsReadOnly="True" Width="*" Binding="{Binding Rate}">
    </DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

这里PartsList是ObservableCollection实体Part的一个.

现在我想添加自定义列到DataGrid显示折扣和另一列显示净金额.我怎样才能做到这一点?

请提出一个好主意,因为我需要处理成千上万的记录,因此性能对我来说非常重要.

先感谢您.

.net c# wpf mvvm wpfdatagrid

10
推荐指数
1
解决办法
1万
查看次数

如何在WPF中将DatePicker添加到DataGridTextColumn

<DataGrid Name="myfirstdg"
          Grid.Row="2"
          AutoGenerateColumns="False"
          CanUserSortColumns="False"
          CanUserAddRows="False"
          CanUserDeleteRows="False"
          SelectionUnit="Cell">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Date"
                            Binding="{Binding Path=date}"
                            Width="SizeToCells"
                            IsReadOnly="True"
                            MinWidth="100"/>
    </DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

我有一个简单DataGridDataGridTextColumn内容.如何添加Datepicker到我的DataGridTextColumn

c# wpf datepicker wpf-controls wpfdatagrid

10
推荐指数
2
解决办法
2万
查看次数

WPF应用程序DataGrid控件窗口在非虚拟化DataGrid中的许多行时切换滞后

我们有一个小的.NET 4.0 DataGrid WPF演示,其代码如下所示.它由一个包含30列和3000行的非虚拟化DataGrid组成.由于我们需要不支持虚拟化的分组功能,因此它是非虚拟化的.

当您运行此应用程序,并在它和其他窗口之间切换时,有一个明显的滞后(约1秒).这仅在重新激活窗口时发生 - 一旦激活,在内部单击没有相关的延迟.

我们已经使用性能分析器对窗口重新激活时发生的这种滞后进行了分析,并发现当窗口重新聚焦时会触发很多依赖属性通知.我们不知道为什么会这样,而且似乎没必要.

我们发现此延迟与DataGrid中的行数成比例.有谁知道我们如何消除或减少这种滞后?

更新:似乎即使停留在应用程序内部,但专注于另一个控件(如网格外的文本框),也会出现焦点延迟.因此,我们现在知道它不是一个窗口切换问题,而是一个由焦点变化引起的问题,但仍然不确定其确切原因.

(MainWindow.xaml)

<Window x:Class="WpfApplication20.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525">
    <Grid>
        <DataGrid Name="dataGrid" VirtualizingStackPanel.IsVirtualizing="False" AutoGenerateColumns="True"/>
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

(MainWindow.xaml.cs)

using System.Collections.Generic;
using System.Windows;

namespace WpfApplication20
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            List<Row> rows = new List<Row>();

            for(int i = 0; i < 3000; i++)
            {
                Row row = new Row(i);
                rows.Add(row);
            }

            dataGrid.ItemsSource = rows;
        }
    }

    public class Row
    {
        public double Double1 { get; set; …
Run Code Online (Sandbox Code Playgroud)

.net c# wpf datagrid wpfdatagrid

9
推荐指数
1
解决办法
1603
查看次数