Я создал столбец кнопок в качестве столбца шаблона в сетке данных WPF. Когда вы нажимаете кнопку, она устанавливает содержимое кнопки на текущую дату.
<DataGridTemplateColumn Header="Date In Source">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button x:Name="BtnDateInSource" Click="DateButton" Style="{StaticResource ReceiveWorkButton}" ></Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<Style TargetType="{x:Type Button}" x:Key="ReceiveWorkButton" >
<Setter Property="Background" Value="Green"/>
<Setter Property="Content" Value="{Binding DateInSource}"/>
<Setter Property="IsEnabled" Value="False"/>
<Style.Triggers>
<DataTrigger Binding="{Binding DateInSource}" Value="{x:Null}" >
<Setter Property="Background" Value="#A3BF3B" />
<Setter Property="Content" Value="Receive Work" />
<Setter Property="IsEnabled" Value="True"/>
</DataTrigger>
</Style.Triggers>
</Style>
Текущая проблема заключается в том, что, поскольку это столбец шаблона, я не могу связать его с источником данных (MVVM).
Таким образом, пользователь нажимает кнопку, и текст кнопки изменяется на текущую дату/время. Теперь я хочу записать это обратно в базу данных.
Моя наблюдаемая коллекция MVVM — это InspectionStatus
в классе SourceInspection
.
Я хотел бы сделать это в XAML, но, может быть, это нужно сделать с помощью INotifyPropertyChanged
?
DatagridContext: Код позади:
System.Windows.Data.CollectionViewSource SourceViewSource =
((System.Windows.Data.CollectionViewSource)
(this.FindResource("SourceViewSource")));
_context.SourceInspections.Load();
SourceViewSource.Source = _context.SourceInspections.Local;
Я думаю, что понял это, использовал это... обновление сетки данных wpf при нажатии кнопки а>
С уважением К.
InspectionStatus
? Вы можете использоватьBinding
для содержимого кнопки - person Pavel Anikhouski   schedule 22.11.2019