标签: datagridtextcolumn

如何将工具提示添加到DataGridTextColumn

我正在使用WPFtoolkit DataGrid,我必须将文本换行DataGridTextColumn或者我必须ToolTip在文本列中添加一个.我在网上搜索过,但我找不到合适的解决方案.期待您的宝贵建议......

wpf datagrid tooltip datagridtextcolumn

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

如何设置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万
查看次数

在DataGridTextColumn中为TextBlock创建样式

我想创建一个全局样式,为a 内部或内部的所有控件设置VerticalAlignmentto .CenterTextBlockDataGridDataGridTextColumn

我不想将以下内容复制到每个中,DataGridTextColumn因为它感觉重复.

<DataGridTextColumn Header="Some Property" Binding="{Binding SomeProperty}">
    <DataGridTextColumn.ElementStyle>
        <Style TargetType="TextBlock">
            <Setter Property="VerticalAlignment" Value="Center"></Setter>
        </Style>
    </DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
Run Code Online (Sandbox Code Playgroud)

我试过类似下面的东西,但它不起作用,因为DataGridTextColumn不继承FrameworkElementFrameworkContentElement.DataGrid本身但我尝试进一步包装会导致错误:

<Style TargetType="DataGridTextColumn">
    <Setter Property="ElementStyle">
        <Setter.Value>
            <Style TargetType="TextBlock">
                <Setter Property="VerticalAlignment" Value="Center"/>
            </Style>
        </Setter.Value>
    </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

wpf datagrid styles datagridtextcolumn

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

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

WPF DataGrid单元格字符串格式作为样式或模板

我尝试了几种方法来分解WPF DataGrid中的单元格格式(.NET 4提供的格式):

  • 一个数据转换器,
  • 样式中的"StringFormat"绑定属性,
  • 数据模板中的"StringFormat"绑定属性.

我将描述我的尝试,因为它可能会帮助其他人,我希望有人可以给我建议,以改善这些解决方案.请注意,我对WPF相当新...

预期的行为是将单元格字符串格式化为特定类似"1,234,567"的内容以进行显示,但在编辑单元格时应将其格式化为"1234567"(其默认格式).当我尝试使用数据转换器时,我没有找到在编辑时使用默认格式的方法,因此我将精力集中在样式和模板上.

使用样式,DataGridTextColumn的定义如下:

<DataGridTextColumn Header="Price (Style)" SortMemberPath="BILL_PRICE">
    <DataGridTextColumn.ElementStyle>
        <Style TargetType="{x:Type TextBlock}">
            <Setter Property="Text" Value="{Binding Path=BILL_PRICE, StringFormat={}{0:N0}}"/>
        </Style>
    </DataGridTextColumn.ElementStyle>
    <DataGridTextColumn.EditingElementStyle>
        <Style TargetType="{x:Type TextBox}">
            <Setter Property="Text" Value="{Binding Path=BILL_PRICE}"/>
            <Setter Property="Padding" Value="0"/>
            <Setter Property="BorderThickness" Value="0"/>
        </Style>
    </DataGridTextColumn.EditingElementStyle>
</DataGridTextColumn>
Run Code Online (Sandbox Code Playgroud)

行为正是预期的.但是,由于绑定,我无法分解这种风格并多次使用它.为了解决分解问题,我使用了DataGridTemplateColumn和数据模板.这是我的DataGridTemplateColumn定义:

<DataGridTemplateColumn Header="Price (Template)" SortMemberPath="BILL_PRICE">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ContentControl Content="{Binding BILL_PRICE}" Template="{StaticResource CurrencyCellControlTemplate}"/>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
    <DataGridTemplateColumn.CellEditingTemplate>
        <DataTemplate>
            <ContentControl Content="{Binding BILL_PRICE, Mode=TwoWay}" Template="{StaticResource CurrencyCellEditingControlTemplate}"/>
        </DataTemplate>
    </DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)

和ControlTemplate定义:

<ControlTemplate x:Key="CurrencyCellControlTemplate" TargetType="ContentControl">
    <TextBlock Margin="2,0,2,0" Padding="0" TextAlignment="Right">
        <TextBlock.Text>
            <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Content" StringFormat="{}{0:N0}"/> …
Run Code Online (Sandbox Code Playgroud)

wpf datagrid string-formatting datagridtemplatecolumn datagridtextcolumn

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

WPF DataGridTextColumn绑定不接受小数

我不明白问题是什么.绑定在Decimal属性上.这是XAML:

<DataGridTextColumn Header="Price" Binding="{Binding Price, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged} Width="*"/>
Run Code Online (Sandbox Code Playgroud)

我字面上不能输入'.' 字符.为什么它会阻止我输入那个字符,我怎么告诉它让我这样做.

我试着像这样做一个字符串格式:

<DataGridTextColumn Header="Price" Binding="{Binding Price, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, StringFormat={}{0:n2}} Width="*"/>
Run Code Online (Sandbox Code Playgroud)

但这并没有解决我的问题,因为它所做的就是将".00"附加到我输入的任何内容的末尾.

我只需要输入句号即可.

更新:

我被引导到这里.我删除了UpdateSourceTrigger属性,这使我可以输入'.'.我没有安装4.5 Beta,我的本地化设置是正确的.所以现在我的问题是如何让DataGridTextColumn允许我输入'.' 是否设置了UpdateSourceTrigger属性?

c# wpf xaml datagridtextcolumn

8
推荐指数
1
解决办法
3097
查看次数

WPF C#数据绑定到DataGridTextColumn

我很难在此数据网格视图中显示任何数据.我已经在其他一些StackOverflow论坛帖子中提到了一些建议,但是没有任何运气可以让内容显示出来.

<DataGrid 
    x:Name="DataGridEmployees"
    DataContext="{Binding RelativeSource={RelativeSource AncestorType=Window}}"
    ItemsSource="{Binding GridView}"
    AutoGenerateColumns="True"
    Loaded="dataGrid1_Loaded"
    Margin="0,2,0,-2" Grid.ColumnSpan="2">
    <DataGrid.Columns>
        <DataGridTextColumn Header="EmployeeId" Width="175" Binding="{Binding Id}"></DataGridTextColumn>
        <DataGridTextColumn Header="Title" Width="175" Binding="{Binding Title}"></DataGridTextColumn>
        <DataGridTextColumn Header="WorkStatus" Width="175" Binding="{Binding WorkStatus}"></DataGridTextColumn>
        <DataGridTextColumn Header="FullName" Width="175" Binding="{Binding FullName}"></DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

这是在xaml.cs文件中从单独窗口(?可能导致任何问题?)触发的click事件

public partial class MainMenu : Window
{
    WpfSampleEntities2 _context = new WpfSampleEntities2();

    public MainMenu()
    {
        InitializeComponent();
    }

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        EmployeeDetails ed = new EmployeeDetails();
        ed.DataContext = ed.DomainEmployees;
        Binding bin = new Binding("GridView");
        bin.Source = ed.DomainEmployees;

        foreach (var item in …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml datagrid datagridtextcolumn

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

如何使WPF Datagrid列不可聚焦?

我有一个WPF DataGrid用于数据输入,但有些DataGridTextColumn只是信息,我设置了IsReadOnly="True"他们的单元格不进入编辑模式.但是,他们仍然可以获得我想要避免的焦点.

有没有办法做到这一点?

wpf focus wpfdatagrid datagridtextcolumn

7
推荐指数
1
解决办法
3651
查看次数

继承DataGridTextColumn并重写GenerateElement

我正在尝试创建一个自定义DataGrid,我可以根据单元格值格式化单个单元格(即;负值为红色文字,后置为绿色)ala这种方法...

如何在WPFToolkit DataGrid中获取当前单元格的绑定值

我还需要将值从负值转换为括号(即:-2.34到(2.34)).我有继承/过度工作.我的问题是,如何访问重写的GenerateElement方法中的单元格中的值.

菲利,提前谢谢

wpf datagrid datagridtextcolumn datagridcell

5
推荐指数
1
解决办法
1641
查看次数

查找DataGridColumn的根元素

我以LogicalTreeHelper.GetParent()递归方式使用该方法来查找各种其他WPF元素的根元素.几乎所有东西都可以正常工作,但是DataGridColumn失败了DataGridTextColumn.我发现它DataGridColumn不是逻辑树和视觉树的一部分.我可以以某种方式找到DataGrid它属于(然后从网格中获取根)?

阅读MSDN文档我找不到合适的解决方案.谢谢.

我的代码找到逻辑根:

private DependencyObject FindLogicalRoot(DependencyObject obj)
{
  if (obj == null)
     return null;
   else
   {
       var parent = LogicalTreeHelper.GetParent(obj);
       return parent != null ? FindLogicalRoot(parent) : obj;
   }
 }
Run Code Online (Sandbox Code Playgroud)

wpf datagrid datagridcolumn datagridtextcolumn

4
推荐指数
1
解决办法
2848
查看次数