Как можно Я меняю ячейку DataGrid в зависимости от данных, с которыми она связана, используя MVVM?

Я использую 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

0
задан DEIONaLiMs 25 November 2011 в 14:26
поделиться