Определить строки DataGrid декларативно в XAML - PullRequest
3 голосов
/ 13 октября 2010

У меня есть этот код, и мне нужно привязать вторую и третью ячейки в строках к различным свойствам.Извините за мой плохой английский.

<DataGrid AutoGenerateColumns="False" HorizontalAlignment="Stretch" Name="measureDataGrid" VerticalAlignment="Stretch">
                                        <DataGrid.Columns>
                                            <DataGridTextColumn x:Name="measureName" Header="Наименование" Width="*" />
                                            <DataGridTextColumn x:Name="measureValue" Header="Значение" Width="Auto" />
                                            <DataGridTextColumn x:Name="measureDestValue" Header="Потенциальное значение" Width="Auto" />
                                        </DataGrid.Columns>
                                        <DataGrid.Items>
                                            <!--<DataGridRow>-->
                                            <RowDefinition/>
                                            <RowDefinition/>
                                            <RowDefinition/>                                                           
                                        </DataGrid.Items>                                   
                                    </DataGrid>

1 Ответ

0 голосов
/ 29 января 2013

Поэтому, если вам нужно преобразовать значение (это можно использовать для отображения разных значений в одном и том же столбце для разных строк), вы можете использовать ValueConverter.

Создать класс, реализующий IValueConverter, который бы выглядел как-токак это:

public object Convert(object value, Type targetType, object parameter,System.Globalization.CultureInfo culture)
{
   bool boolValue = (bool)value;

   if(boolValue)
    return x;
   else
    return y;

}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
    throw new NotImplementedException();
}

Создайте ссылку на него в вашем xaml:

<converters: MeasureConverter x:Key="MeasureConverter" />

И используйте в вашем DataGridTextColumn так:

<DataGridTextColumn Header="measureRow1" DataMemberBinding="{Binding ValueThatWouldDetermineWhatToShow, Converter={StaticResource MeasureConverter}}" />
<DataGridTextColumn Header="measureRow2" DataMemberBinding="{Binding ValueThatWouldDetermineWhatToShow, Converter={StaticResource MeasureConverter}}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...