2013-10-08 1 views
0

Я работаю над проектом C#/WPF. У меня есть datagrid, привязанный к модели.IValueConverter, получить другие значения строки в WPF DataGrid

Как получить другие значения одной и той же строки в конвертере?

конвертер пример:

public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
{ 
    int val = (int)value; 

    return (int)(val/0.41); 
} 

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
{ 
    int val = (int)value; 
    return (int)(val * 0.41); 
} 

Binding сделано как можно увидеть в View (XAML):

<DataGrid ItemsSource="{Binding FixParaCollectionView}" AutoGenerateColumns="False"> 
<DataGrid.Columns> 
     <DataGridTextColumn IsReadOnly="True" Header="Name" Binding="{Binding Name}"/> 
     <DataGridTextColumn Header="Value" Binding="{Binding Value,NotifyOnTargetUpdated=True, Converter={StaticResource Converter}}"> 
     </DataGridTextColumn> 
</DataGrid.Columns> 

Как я могу получить другие значения (например, «Имя ") текущей строки в конверторе?

ответ

2

В вашем TextBoxColumn, вместо связывания с Value proeperty связывается с целой DataContext из ряда

<DataGridTextColumn Header="Value" Binding="{Binding ,NotifyOnTargetUpdated=True, Converter={StaticResource Converter}}"> 

Затем конвертера вы получите весь объект подопрет ваш DataGridRow. Предполагаемая модель вашего модельного класса

public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
{ 
    Model model= value as Model; 

    return (int)(model.Value/ 0.41); 
} 
+0

Спасибо. Я ищу прямо сейчас, как использовать ваш ответ для DataGridTemplateColumn. Может быть, кто-то может сказать мне и сократить мои поиски. – user2799180

+0

вы можете использовать его так же, как и для других шаблонов ... если вы поделитесь своим шаблоном, вам будет проще дать вам решение – Nitin

+0

## Вот шаблон, я хочу, чтобы конвертер работает на ... user2799180