Я новичок в WPF, который может объяснить трудность, с которой я это делаю. В качестве примера того, что я хочу сделать, я использую упрощенную версию примера примера Xceed's MasterDetial, в которой Employees как Мастер и Заказы, связанные с каждым сотрудником как Детали. Функции DetailConfigurations работают. Я использую этот пример, потому что мне нужно, чтобы те же функции работали в гораздо большем и сложном приложении.Xceed WPF DataGrid - Мастер/Деталь: изменение цвета фона ячейки в деталях на основе данных
Где я столкнулся с проблемой пытается изменить цвет фона одного 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>
...
Благодаря тонну, это работая для меня, по крайней мере, в этом конкретном fic. Реальная реализация сложнее и требует, чтобы конвертер искал данные в другом месте, поэтому я построю это и надеюсь, что все это все еще работает в конце! – CaseyR