Здравствуйте! Есть таблица DataGrid, которая биндится к DataTable. Свойство CanUserAddRows="True". И есть столбик с кнопками управления строчки. Хочется реализовать работу как показано на рисунке, который я прикрепил, чтоб для каждой строчки было две кнопки (Удалить и Сохранить) А для последней только кнопка сохранить. Понятно что для этого нужен класс конвертер. Вот что пока получилось найти и попробовать: | Код | <DataGridTemplateColumn Header="Управление" Width="160" CanUserReorder="False" CanUserResize="True" CanUserSort="True" MinWidth="40"> <DataGridTemplateColumn.CellTemplate> <DataTemplate > <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> <Button Template ="{DynamicResource GlassButton}" Content="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGridRow}}, Path=Item, Converter={StaticResource TextConverter}}" Margin="2,1" CommandParameter="{Binding}" Width="70" Height="20" Padding="0" Click="Button_Click1" /> <Button Template ="{DynamicResource GlassButton}" Content="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGridRow}}, Path=Item, Converter={StaticResource TextConverter}}" Margin="2,1" CommandParameter="{Binding}" Width="70" Height="20" Padding="0" Click="Button_Click2" /> </StackPanel> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn>
|
| Код | public class TextConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value != null && value.GetType() == typeof (DataRowView)) { var v = ((DataRowView)value).Row.Table.Rows.IndexOf(((DataRowView)value).Row); return "Удалить"; //+ ((DataRowView) value).Row.Table.Rows.IndexOf(((DataRowView) value).Row); }
return "Добавить"; }
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } }
|
Присоединённый файл ( Кол-во скачиваний: 8 )
Безымянный.jpg 53,34 Kb
|