标签: wpfdatagrid

双击WPF DataGrid时显示RowDetails

目前,当我点击一行时,我的DataGrid会显示RowDetails.但我想只在双击时显示RowDetails.

解决这个问题的任何想法?

谢谢!

.net wpf wpfdatagrid

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

DataGrid周围的WPF ScrollViewer会影响列宽

我有一个ScrollViewer的问题,我用它来滚动包含数据网格的用户控件.如果没有滚动查看器,列会根据需要填充数据网格,但在添加滚动查看器时,列会缩小到~15px.我能够简化我的布局,仍然可以重现这种行为.

将数据网格宽度绑定到另一个控件时,列具有它们的法线,但这与数据网格上的固定宽度具有相同的效果.我想我不是第一个遇到这个问题的人.如何解决此问题,让我的网格将其大小调整为可用空间并为其列提供一个比例宽度?

使用scrollviewer: 在此输入图像描述 没有: 在此输入图像描述

<Window x:Class="GridTest.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">
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<Grid MinWidth="200">
    <DataGrid Margin="0" AutoGenerateColumns="False">
        <DataGrid.Columns>
            <DataGridCheckBoxColumn Header="Column A" Width="*"/>
            <DataGridCheckBoxColumn Header="Column B" Width="*"/>
        </DataGrid.Columns>
    </DataGrid>
</Grid>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

wpf xaml scrollviewer wpfdatagrid

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

当它为空时,在WPF DataGrid上显示"找不到记录"消息

如果没有可用的记录,我想TextBlock在标题下面添加一个数据网格,显示消息"找不到记录".

请考虑附图以供参考.替代文字

wpf xaml wpfdatagrid

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

WPF.如何通过绑定来停止数据触发动画?

在WPF工具包datagrid中,我有一个数据触发器绑定到单元格元素的不透明度.

UpVisibility路径变为1时,动画开始淡化为0.哪个有效.

但是我的问题现在 - 如果我需要提前停止/取消淡入淡出并且设置UpVisibility为0,路径仍然可见并且随着任何事情的发生而消失....

如何使用MyValue对象立即将不透明度降为0?

<Path Data="M 5,0 0,10 10,10" Height="10" Width="10" Fill="Green" Opacity="{Binding MyValue[0].UpVisibility}" Margin="5,0,5,0">
    <Path.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding MyValue[0].UpVisibility}" Value="1.0">
                    <DataTrigger.EnterActions>
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetProperty="Opacity" From="1.0" To="0.0" Duration="0:0:10" />
                            </Storyboard>
                        </BeginStoryboard>
                    </DataTrigger.EnterActions>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Path.Style> 
</Path>
Run Code Online (Sandbox Code Playgroud)

c# wpf binding datagrid wpfdatagrid

12
推荐指数
2
解决办法
6172
查看次数

向DataGridTextColumn添加边距

如何向DataGridTextColumn添加边距或填充?

wpf wpfdatagrid

12
推荐指数
2
解决办法
7419
查看次数

如何在WPF DataGrid中处理组小计和目标行?

我正在实现一个包含许多关键值的项目的WPF DataGrid.项目按项目类别分组.

对于每个类别,应该有:

  1. 在每个关键值列中显示该列的所有行的总和的行.
  2. 绑定到的数据源网格中不属于目标行的目标行.目标行告诉每一列当年的目标是什么(例如,要花多少钱).

这些行应始终位于每个组的顶部(排序过滤).

我的第一个解决方案是将这些数据放在组头中.这不是一个好的解决方案,因为组头不支持列.即它应该通过获得列宽来构造.

这可以做到,但当用户想要重新排序和隐藏列时,它会变得复杂.

DataGrid使用的是CollectionViewSource,因此它没有填充C#代码.基本上我正在扩展这个例子:http://msdn.microsoft.com/en-us/library/ff407126.aspx

谢谢和最诚挚的问候 - matti

c# wpf datagrid wpfdatagrid

12
推荐指数
1
解决办法
2379
查看次数

如何设置DataGridTextColumn文本颜色?

我正在尝试更改DataGridTextColumn的颜色.

这是我正在做的事情:

<DataGridTextColumn 
    Header="Status" 
    Binding="{Binding IsActive, 
               Converter= {StaticResource BoolToStatusConverter}}"
    Foreground="{Binding Path=IsActive,
               Converter={StaticResource BoolToColorConverter}}"/>
Run Code Online (Sandbox Code Playgroud)

文本设置正确,但颜色不会改变,我收到以下错误:

System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or 
FrameworkContentElement for target element. BindingExpression:Path=IsActive; 
DataItem=null; target element is 'DataGridTextColumn' (HashCode=40349079); target 
property is 'Foreground' (type 'Brush')
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能工作?

c# wpf xaml wpfdatagrid datagridtextcolumn

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

WPF在DataGrid中全局样式化TextBlock

我遇到了一个非常奇怪的问题.我正在尝试将全局样式应用于a中的几个控件DataGrid.他们中的大多数都完全按照我的期望工作.但是,TextBlock永远不会应用样式.样式ComboBox,TextBox,Label,和其他几个人都越来越适用于它们各自的对照,但不是TextBlock.我尽可能地简化了代码,问题仍然存在.我在下面提供了代码示例.

我需要应用的样式TextBlock,我不想手动应用它TextBlock.

<DataGrid ItemsSource="{Binding Data}" AutoGenerateColumns="False">
    <DataGrid.Resources>
        <Style TargetType="TextBlock">
            <Setter Property="ANY_TEXTBLOCK_PROPERTY" Value="VALUE" />
        </Style>
    </DataGrid.Resources>
    <DataGrid.Columns>
        <DataGridTemplateColumn Header="Test">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock Text="Globably Applied" />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

更多信息:

  • 比其他任何控制全局样式TextBlock(TextBox,ComboBox,等)的正常工作.
  • 定义内部的全局样式DataTemplate将正常工作.
  • 直接将样式分配给TextBlock使用x:Key将工作.
  • 全局DataGridCell使用样式TextElement.PROPERTY将应用于TextBlock.

虽然其中一些将适用于该风格TextBlock,但它们有自己的问题.直接指定样式或在a中某处定义样式DataGridColumn意味着我将不止一次地应用样式.使用TextElement.PROPERTYon DataGridCell将将样式应用于不仅仅是TextBlock控件,并将限制您可以设置的属性数.

wpf wpfdatagrid c#-4.0

12
推荐指数
1
解决办法
6900
查看次数

WPF Datagrid:清除列排序

我在我的应用程序中使用WPF Datagrid,可以通过单击标题对列进行排序.

我想知道是否有任何方法可以以编程方式清除列的排序?

我尝试对列进行排序然后清除MyDataGrid.Items.SortDescriptions,但该集合为空(即使已对一列进行了排序).

我也尝试过:

MyDataGridColumn.SortDirection = null;
Run Code Online (Sandbox Code Playgroud)

问题是列指示消失了,但是在编辑单元格和切换行时仍然会发生排序.

有没有办法清除列的排序?

编辑(为清晰起见):问题是,如果用户重新点击相同的列标题,我想再次允许排序,因此将CanUserSort设置为false会有问题,即使它是在XAML中完成的.简而言之,我正在尝试做的是,一旦已排序的列具有已修改的单元格,就会阻止对行进行排序.我想强制用户重新点击标题.

c# wpf wpfdatagrid

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

带有标题'*'的DataGridColumn已存在于DataGrid的Columns集合中

我有一个MVVM模式的WPF应用程序.在我的一个观点中,我必须绑定ObservableCollection到视图.在那个视图中,我有一个ListBox和一个DataGrid都绑定到相同ObservableCollection但做不同的事情,如事件,风格等.

我只需要在时间,我所做的是创建两个用户控件,一个用于显示其中一个控件DataGrid和其他的ListBox.我通过ContentControl在主视图上放置一个类似于这个博客的东西来切换它们.默认视图是DataGrid,当点击一个按钮时,显示另一个视图(即ListBox).直到这个工作正常.

还要记住,数据网格列是使用以下链接中描述的解决方案动态生成的.所以当我回去DataGrid查看它时,在foreach语句中向数据网格添加列时抛出错误(请参阅上一个链接的答案)

"带有标题'Ord'的DataGridColumn已经存在于a DataGrid.的Columns集合中.DataGrids不能共享列,也不能包含重复的列实例."

但我确信在DataGrid向其Count属性添加列之前是零(dataGrid.Columns.Count()).那么DataGrid标题属性如何保持?有没有办法清除标题值?

请建议......

c# wpf mvvm wpfdatagrid

12
推荐指数
1
解决办法
1611
查看次数

标签 统计

wpf ×10

wpfdatagrid ×10

c# ×5

xaml ×3

datagrid ×2

.net ×1

binding ×1

c#-4.0 ×1

datagridtextcolumn ×1

mvvm ×1

scrollviewer ×1