Я использую легкий инструментарий MVVM, и у меня есть DataGrid, привязанный к ObservableCollection.Отображается только один текстовый столбец.Я хотел бы, чтобы текст ячейки был жирным или обычным в зависимости от логического значения, которое находится внутри отображаемого объекта.Я подумал, что мог бы использовать RelayCommands, но они принимают только 1 параметр, и мне нужно по крайней мере 2, чтобы получить CellContent (DataGridRowEventArgs и сам DataGrid).Я попытался запустить делегат RelayCommand Execute для события «LoadingRow», но с помощью только одного параметра я не смог этого сделать.
Вот таблица данных в XAML:
<DataGrid x:Name="dataGrid1" HorizontalAlignment="Left" Margin="112,34,0,8" Width="100" IsReadOnly="True" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserSortColumns="False" CanUserResizeRows="False" ItemsSource="{Binding CurrentNewsList}" AutoGenerateColumns="False" SelectedIndex="0">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Title}" MinWidth="92" Width="Auto" FontFamily="Segoe UI" Foreground="Black" FontWeight="{Binding CurrentNewsList[0].MyFont}"/>
</DataGrid.Columns>
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<Custom:EventToCommand Command="{Binding NewsSelectedCommand}" CommandParameter="{Binding SelectedIndex, ElementName=dataGrid1}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</DataGrid>
Я установил сетку в Blend.Обратите внимание, что FontWeight связан как "{Binding CurrentNewsList [0] .MyFont}".Это правильно ?Я также пытался "{Binding MyFont}", но оба получили одинаковый результат: No BOld: (
MyFont установлен в конструкторе объектов с логическим значением:
MyFont = newIsRead ? FontWeights.Normal : FontWeights.Bold;
Пожалуйста, помогите.
Thx