У меня есть DataGrid, где я задаю ItemsSource
как таковое:
TheGrid.ItemsSource = items;
И XAML:
<DataGrid Name="TheGrid" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False">
<DataGrid.Resources>
<Style.Setters>
<Setter Property = "Background" Value="{Binding = ???}" ></Setter>
</Style.Setters>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Header="Id" Binding="{Binding Id}"/>
<DataGridTextColumn Header="Time" Binding="{Binding Time}"/>
...
</DataGrid.Columns>
</DataGrid>
Теперь, на мой взгляд, у меня есть общедоступный словарь какнапример:
public IDictionary<string, Color> IdColors { get; set; }
Проблема в том, что я не знаю, как взять идентификатор из моего ItemsSource
и передать его в привязку так, чтобы он получал доступ к словарю по этому идентификатору и принимал цвет.Я прочитал альтернативные решения, такие как:
Делаем это в конвертере
Подписываемся на LoadingRow
и просто устанавливаем его там программно
Я думаю, что знаю, как сделать # 2, но я пришел спросить у стека, будет ли это целесообразно.