我是 WPF 的新手,这可能解释了我这样做的困难。作为我想要做的一个例子,我正在使用 Xceed 的 MasterDetial 示例应用程序的简化版本,该应用程序将员工作为主控,将与每个员工关联的订单作为详细信息。DetailConfigurations 正在工作。我使用这个示例是因为我需要在更大、更复杂的应用程序中使用相同的功能。
我遇到麻烦的地方是尝试更改详细信息部分中单个 DataCell 的背景颜色。例如,假设我扩展了第一个主(员工)行并取回了订单列表。每个订单都有一个 ShipCountry 字段。如果 ShipCountry 的值为“波兰”,我想将 ShipCountry 单元格(并且仅该单元格)的背景更改为红色。
尽管存在 DataCell 的目标类型,但下面对整行执行此操作。我不明白为什么会这样。根据我在寻找这个问题时发现的东西,我尝试了许多不同的方法,但都没有奏效。我想我遗漏了一些明显的东西,这是一个简单的绑定问题,但这就是 WPF(和 Xceed 网格)的新手阻碍我的地方。
任何帮助将不胜感激!
<xcdg:DataGridControl
x:Name="grid"
AllowDetailToggle="{Binding Source={x:Static local:MainPageParams.Singleton},Path=AllowDetailToggle}"
AutoCreateDetailConfigurations="False"
CellEditorDisplayConditions="None"
EditTriggers="BeginEditCommand,ActivationGesture,ClickOnCurrentCell"
ItemScrollingBehavior="Immediate"
ItemsSource="{Binding Source={StaticResource cvsEmployees}}">
<xcdg:DataGridControl.Resources>
<Style TargetType="{x:Type xcdg:DataCell}">
<Style.Triggers>
<!-- Fieldname not a valid property...
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=ShipCountry}" Value="Poland"/>
<Condition Binding="{Binding Self, Path=FieldName}" Value="ShipCountry"/>
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="Red"/>
</MultiDataTrigger>
-->
<!-- This changes the entire row to Red, not just the ShipCountry field-->
<DataTrigger Binding="{Binding Path=ShipCountry}" Value="Poland">
<Setter Property="Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</xcdg:DataGridControl.Resources>
<xcdg:DataGridControl.View>
...