标签: wpfdatagrid

ListView.GridViewColumn(*)width

我使用的是ListView控件而不是DataGrid我的WPF应用程序.我想给*我的宽度ListView.GridViewColumn,但每当我提供*宽度时ListView.GridViewColumn,它给我一个编译时错误.请建议我如何提供*宽度ListView.GridViewColumn,以便ListView.GridViewColumn在我最大化屏幕时自动填充额外空间.

对此的任何帮助将非常感谢.谢谢

wpf listview gridview gridviewcolumn wpfdatagrid

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

WPF DataGrid验证错误未清除

所以我有一个WPF DataGrid,它必然会被绑定ObservableCollection.该集合通过对其成员进行验证IDataErrorInfo.如果我以某种方式编辑单元格以使其无效,然后在击中输入之前将其标记离开它,然后返回并使其有效,单元格将停止显示无效,但是,"!" 在行的头部仍将存在,并且ToolTip将引用先前的无效值.

validation wpf datagrid idataerrorinfo wpfdatagrid

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

鼠标滚动无法在具有wpf数据网格和其他UI元素的滚动查看器中工作

我试图弄清楚如何让鼠标滚动在wpf窗口上工作,其中包含scrollviewer和datagrid.WPF和C#代码如下

<ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Grid Grid.Row="0">

            <Border Name="DataGridBorder" BorderThickness="2"  Margin="1" CornerRadius="4" BorderBrush="#FF080757">
                <dg:DataGrid AutoGenerateColumns="False" Name="ValuesDataGrid" 
                         BorderThickness="0" CanUserResizeColumns="True" FontWeight="Bold" HorizontalScrollBarVisibility="Auto" 
                         CanUserReorderColumns="False" IsReadOnly="True" IsTextSearchEnabled="True" AlternationCount="2"
                         SelectionMode="Extended" GridLinesVisibility="All"                
                         HeadersVisibility="Column" CanUserAddRows="False" CanUserDeleteRows="False" CanUserResizeRows="False" CanUserSortColumns="False"
                         RowDetailsVisibilityMode="Collapsed"  SelectedIndex="0"
                         RowStyle="{StaticResource CognitiDataGridRowStyle}"
                         >

                    <dg:DataGrid.Columns>
                        <dg:DataGridTemplateColumn Header="Title" >
                            <dg:DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <StackPanel Orientation="Horizontal" >
                                        <TextBlock HorizontalAlignment="Left" VerticalAlignment="Center" Text="{Binding Path=Name}" FontWeight="Normal"  />
                                    </StackPanel>
                                </DataTemplate>
                            </dg:DataGridTemplateColumn.CellTemplate>
                        </dg:DataGridTemplateColumn>
                    </dg:DataGrid.Columns>
                </dg:DataGrid>
            </Border>
        </Grid>
        <Button Grid.Row="1" Height="90" >hello world</Button>
    </Grid>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

并且C#代码如下

 public partial class Window1 : Window
  {
     public …
Run Code Online (Sandbox Code Playgroud)

c# wpf wpfdatagrid

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

从datagrid中删除行

我们可以删除每行datagrid之间的行吗?所以它看起来像listview(所以只有数据应该在两行之间没有行)

wpf wpfdatagrid

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

提高WPF DataGrid的性能

在我的.NET 3.5 WPF应用程序中,我有一个WPF DataGrid将填充500列和50行.在滚动时,或者当我DataGrid.Items.Refresh()选择行或选择行时,App的性能非常差.

实际上应用程序将花费大约20秒来更新布局.Layout_Updated()事件将在20秒后触发.

如果我将列减少到50或更少,App将会非常敏感.根据我的发现,性能与列数直接相关.

如何提高DataGrid性能?

c# wpf datagrid wpfdatagrid

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

如何冻结WPF DataGrid的第一列

我有一个WPF DataGrid ..

我想冻结WPF DataGrid的第一列,同时水平scrlling ..

我的代码是:

<DataGrid Name="dgQuestionTemplate" HorizontalAlignment="Left" Grid.Row="1" Width="870" HorizontalScrollBarVisibility="Auto" IsReadOnly="False">

            <DataGrid.Columns>                    
                <DataGridTextColumn Binding="{Binding ExamDate}" Header="Date" IsReadOnly="True" Width="90" />
                <DataGridTextColumn Binding="{Binding ExamName}" Header="Test Name" IsReadOnly="True" Width="195" />
                <DataGridTextColumn Binding="{Binding Batch}" Header="Batch" IsReadOnly="True" Width="100" />
                <DataGridTextColumn Binding="{Binding ExamTime}" Header="    Count Down  [Days: hr: min: sec]"  IsReadOnly="True" Width="*" />
            </DataGrid.Columns>

</DataGrid>
Run Code Online (Sandbox Code Playgroud)

c# wpf freeze wpfdatagrid freezable

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

WPF Datagrid行编辑"ENDED"事件

我知道WPF datagrid有"RowEditEnding"事件,但是我需要在Row调试之后触发事件,以检查新添加的行是否重复并合并重复的行.我的datagrid将"CanUserAddRow"属性设置为True.

我正在使用EntityObservableCollection扩展ObservableCollection以使我的实体与集合同步.所以,我考虑过OnCollectionChanged事件,但是一旦用户点击新项目占位符行,就会引发"InsertItem"事件,这意味着该对象仍然是空的,我无法检查是否有重复.

反正我是否可以举起RowEditEnded活动?

谢谢...

wpf observablecollection wpfdatagrid

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

使用WPF数据网格时如何更改列标题的背景颜色

如何在使用WPF数据网格时更改列标题的背景颜色?需要直接修改xaml吗?

.net c# wpf xaml wpfdatagrid

27
推荐指数
5
解决办法
6万
查看次数

WPF DataGrid - 为什么是额外的列

我有一个DataGrid用于显示一些数据的WPF应用程序.当我运行该程序时,还有一个附加列,如下所示: 在此输入图像描述

这是我在VS2010中设计时的样子在此输入图像描述

我已关闭数据网格上的AutoGenerateColumns并单独指定列(这是用户控件):

<Grid Margin="10,10,10,10">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition />
    </Grid.RowDefinitions>


    <DataGrid x:Name="EmployeeHours" AutoGenerateColumns="False" ItemsSource="{Binding EmployeeHoursLastWeek}" Width="Auto">
        <DataGrid.Columns>
            <DataGridTextColumn Header="PerceptionistID" Binding="{Binding PerceptionistID}" Width="100" />
            <DataGridTextColumn Header="Week Of" Binding="{Binding WeekOf, StringFormat={}{0:MM/dd/yyyy}}" Width="75" />
            <DataGridTextColumn Header="Regular Hours" Binding="{Binding WorkHours}" Width="100" />
            <DataGridTextColumn Header="PTO Hours" Binding="{Binding PTOHours}" Width="100" />
            <DataGridTextColumn Header="Holiday Hours" Binding="{Binding HolidayHours}" Width="100" />
        </DataGrid.Columns>
    </DataGrid>

    <Button x:Name="ImportHoursButton" Content="Import Hours" 
            Command="{Binding ImportHoursCommand}" 
            Height="25" Width="100" Margin="10"
            VerticalAlignment="Bottom" HorizontalAlignment="Right"                
            Grid.Row="1" />
</Grid>
Run Code Online (Sandbox Code Playgroud)

我还有一个MainWindowView,它使用注入来显示视图(这是一个常规窗口):

<Window x:Class="Sidekick.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:vm="clr-namespace:Sidekick.ViewModel"
        xmlns:vw="clr-namespace:Sidekick.View"
        Title="Sidekick"> …
Run Code Online (Sandbox Code Playgroud)

wpf user-controls wpfdatagrid c#-4.0

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

升级到.NET 4.5:ItemsControl与其项目源不一致

我正在构建一个应用程序,它使用许多ItemControls(datagrids和listviews).为了从后台线程轻松更新这些列表,我将此扩展用于ObservableCollections,它运行良好:

http://geekswithblogs.net/NewThingsILearned/archive/2008/01/16/have-worker-thread-update-observablecollection-that-is-bound-to-a.aspx

今天我安装了VS12(后来安装了.NET 4.5),因为我想使用为.NET 4.5编写的组件.在将我的项目升级到.NET 4.5(从4.0)之前,我的数据网格从workerthread更新时开始抛出InvalidOperationException.异常消息:

抛出此异常是因为控件'System.Windows.Controls.DataGrid Items.Count:5'的名称为'(未命名)'的生成器已收到与Items集合的当前状态不一致的CollectionChanged事件序列.检测到以下差异:累计计数4与实际计数5不同.[累计计数为(上次重置时计数+ #Adds - 自上次重置后自上次复位).

Repro代码:

XAML:

<Window x:Class="Test1.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 ItemsSource="{Binding Items, Mode=OneTime}" PresentationTraceSources.TraceLevel="High"/>       
   </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

码:

public partial class MainWindow : Window
{
    public ExtendedObservableCollection<int> Items { get; private set; }

    public MainWindow()
    {
        InitializeComponent();
        Items = new ExtendedObservableCollection<int>();
        DataContext = this;
        Loaded += MainWindow_Loaded;
    }

    void MainWindow_Loaded(object sender, RoutedEventArgs e)
    {
            Task.Factory.StartNew(() =>
            {
                foreach (var item in Enumerable.Range(1, 500))
                {
                    Items.Add(item);
                }
            });                
    }
}
Run Code Online (Sandbox Code Playgroud)

c# wpfdatagrid .net-4.5

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