【问题标题】:How to update text uppercase style for Grid header in wpf C#如何在 wpf C# 中更新网格标题的文本大写样式
【发布时间】:2018-11-21 23:23:23
【问题描述】:

需要在 C# WPF 应用程序中使用大写更新网格标题文本

网格标题类似于:ItemName 预期为:ITEMNAME

请告诉我们怎么做?

<StackPanel>
    <DataGrid 
        x:Name="ItemsList"   AutoGenerateColumns="True"  
        GridLinesVisibility="None"               
        HorizontalAlignment="Center"
        IsReadOnly="True"
        BorderThickness="1"
        BorderBrush="LightGray"
        ColumnWidth="138.5"
        ColumnHeaderStyle="{DynamicResource dataGridHeader}" />
</StackPanel>

【问题讨论】:

  • 如何从“ItemName”转到“SUBNAME”?您的自定义 ColumnHeaderStyle 是如何定义的?
  • ItemName" 到 "ITEMNAME.那是错误

标签: c# wpf mvvm caliburn.micro


【解决方案1】:

一般情况下,您可以处理AutoGeneratingColumn 事件以将列的Header 属性设置为自定义字符串,例如:

private void Dg_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
    e.Column.Header = e.PropertyName.ToUpper();
}

【讨论】:

  • 不知道为什么?但是这个事件并没有被解雇。我们需要在 XAML 中显式添加它吗?
  • 是的; &lt;DataGrid ... AutoGeneratingColumn="Dg_AutoGeneratingColumn"&gt;
  • 我们使用的是 Caliburn 微架构 (MVVM),所以我无法在 xaml.cs 文件中写入任何事件。但是这种方式会在 xaml 文件中生成一个事件
  • 当然可以。特别是因为您使用的是自动生成的列。另一种选择是在 XAML 中显式定义列。在代码隐藏中以编程方式设置列的标题不会以任何方式破坏 MVVM 模式。
  • @Mahesh 为什么你认为在 MVVM 方法中你不能在 xaml.cs 中做任何事情?
猜你喜欢
  • 2022-01-16
  • 2012-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-05
  • 1970-01-01
  • 2015-12-20
  • 2013-07-17
相关资源
最近更新 更多