- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
例如,我有一些具有简单模型的 MVVM WPF 应用程序:
public class MyObject
{
public string F1 { get; set; }
public string F2 { get; set; }
}
和创建 3 行的简单 View 模型:
public class MyViewModel
{
public ObservableCollection<MyObject> Objects { get; set; }
public MyViewModel()
{
Objects = new ObservableCollection<MyObject>
{
new MyObject{F1 = "V1",F2 = "B1"},
new MyObject{F1 = "V2",F2 = "B2"},
new MyObject{F1 = "V3",F2 = "V3"}
};
}
}
在 View 中,我有一个包含手动定义列的 DataGrid
,并且我为每一列设置了 CellStyle
。两种样式都在 Window.Resources
block 中定义。但是对于第一列,我使用 StaticResource
,对于第二列,我使用 DynamicResource
查看 XAML:
<Window x:Class="WpfApplication12.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" x:Name="WholeWindow">
<Window.Resources>
<Style x:Key="BaseCellClass" TargetType="DataGridCell">
<Setter Property="Foreground" Value="Blue" />
</Style>
</Window.Resources>
<Grid>
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding ElementName=WholeWindow, Path=ViewModel.Objects}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding F1}" Header="F1" CellStyle="{StaticResource BaseCellClass}" />
<DataGridTextColumn Binding="{Binding F2}" Header="F2" CellStyle="{DynamicResource BaseCellClass}" />
</DataGrid.Columns>
</DataGrid>
</Grid>
所以问题是:在第二列中,资源没有应用到该列。
最佳答案
您可以为 DataGridCell
中的属性创建资源Style
然后将它们引用为 DynamicResource
在 Style
内定义:
根据您的示例,它看起来像这样:
<Window.Resources>
<SolidColorBrush x:Key="ForegroundBrush" Color="Blue"/>
<Style x:Key="BaseCellClass" TargetType="DataGridCell">
<Setter Property="Foreground" Value="{DynamicResource ForegroundBrush}" />
</Style>
</Window.Resources>
<Grid>
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding ElementName=WholeWindow, Path=ViewModel.Objects}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding F1}" Header="F1" CellStyle="{StaticResource BaseCellClass}" />
<DataGridTextColumn Binding="{Binding F2}" Header="F2" CellStyle="{StaticResource BaseCellClass}" />
</DataGrid.Columns>
</DataGrid>
</Grid>
资源当然会位于单独的资源文件中。
关于c# - 为什么我不能将 DynamicResource 与 DataGridColumn.CellStyle 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17475083/
我正在使用 Java 中的 Apache POI 库构建 Excel 文件。我想要多个具有不同颜色的单元格,因此我创建了一种方法来构建我需要的样式。然后,我调用此方法来应用我需要的样式。 不幸的是,最
请注意:我看到一个非常提出的类似问题here但这个答案并不是很确定(我无法辨别实际的修复是什么)。如果有人可以向我解释该问题/答案如何解决我当前的问题,我会很乐意自己删除这个问题!只是请不要将 DV/
我不明白为什么会发生这种情况,首先我尝试在第一行的列标题中应用粗体文本,然后我想将标题单元格的边框设置为中等,但此中等边框样式应用于工作表中的所有单元格。在下面的相同代码中还有更多问题: 列标题(第一
我正在尝试对齐文本。这是我的 pom.xml: org.apache.poi poi-ooxml 3.17 在我的代码中:
我有一些代码,例如: CellStyle cs2 = wb.createCellStyle(); CellStyle cs4 = wb.createCellStyle(); cs4.setDataFo
我正在编写一个java代码,我必须比较两个Excel工作表,无论格式如何(xls或xlsx),并复制与新Excel工作表不同的行。然后我读到 WorkbookFactory 可以接受这两种格式。 下面
使用 apache POI ... 我使用了 workbook.CreateCellStyle(),如果一段时间后我需要删除创建的 CellStyle ... 如何从工作簿中删除它?我可以看到它仍然存
我有一个 Bootstrap-Table,它带有一个用于添加新数据行的按钮。我想为插入的每个新行的特定列(text2)的单元格着色。我正在使用内置方法 cellStyle(),如下所示:http://
我正在尝试获取 XLSX 文件单元格的字体颜色。 我正在使用 apache poi。 我能够获得单元格颜色,但不能获得字体颜色。 任何形式的建议将不胜感激。 谢谢 最佳答案 来自 XSSFCellSt
CellStyle stringStyle = workbook.createCellStyle(); stringStyle.setAlignment(HorizontalAlignment.CEN
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 4 年前。 Improve th
我正在尝试让自定义颜色在 Apache POI 中工作,但遇到了一个小问题。到目前为止,我一直在使用 IndexedColors,但作为调色板,它相当单调。因此,使用 RGB 格式进行颜色选择将帮助我
我想使用Apple给定的单元格样式value1对于我的细胞,我不确定这是如何正确完成的。设置单元格样式的唯一可能的方法是在Cell's initialization期间。 ,但我认为在这种情况下子类化
我的系统使用来自 Java 的 Apache POI 生成许多不同的 Excel 报告。 很多这些报告共享相同的样式。 我已经创建了一个 CellStyle 库供所有报告使用。我想知道是否有更简洁的方
例如,我有一些具有简单模型的 MVVM WPF 应用程序: public class MyObject { public string F1 { get; set; } public
正如您从标题中可以理解的那样,在第 41 行之后,即使通过调试我看到代码运行良好,我的风格也不适用。 我的功能是: private void writeTable(Table table,Row ro
环境: Primefaces 6.1 野蝇10 java 8 我遇到的问题是以下错误 Caused by: java.lang.NoSuchMethodError: org.apache.poi.ss
我想将一些记录写入 excel 但我知道 XSSFWorkbook 中的最大单元格样式是 64000。但记录超过 64000 并且考虑我想要将新的 cellstyle 应用于每个单元格,或者我将使用现
我想将 boolean 值写入 Excel 单元格,但不是将单元格样式设置为“逻辑”,而是将单元格样式设置为“数字”。 private void writeToDocument(XSSFWorkboo
我是一名优秀的程序员,十分优秀!