Я использую MVVM Light Toolkit, и у меня есть DataGrid, привязанный к ObservableCollection. Отображается только один текстовый столбец.Я бы хотел, чтобы текст ячейки был полужирным или нормальным в зависимости от логического значения внутри отображаемого объекта. Я решил, что могу использовать RelayCommands, но они принимают только 1 параметр, а мне нужно как минимум 2, чтобы получить CellContent (DataGridRowEventArgs и сам DataGrid). Я попытался запустить делегат RelayCommand Execute в событии «LoadingRow», но не смог этого сделать с одним параметром.
Вот DataGrid в 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 установлен в конструкторе Object с логическим значением:
MyFont = newIsRead ? FontWeights.Normal : FontWeights.Bold;
Пожалуйста, помогите.
Thx