как получить выбранные данные из автоматически созадной строки в datagrid wpf?
Всем привет, у меня возникла проблема с извлечением данных из автоматически созданной строки в datagrid. Пока эта строка не будет добавлена в datagrid(например, нажатием Enter или выделением другой строки), я не могу получить из неё данные, а мне надо получить данные до добавления строки( в datagrid). Может быть, кто-то сталкивался с подобной ситуацией и сможет подсказать, как все-таки получить данные из строки до добавления в DataGrid?
вот пример таблицы:
<DataGrid x:Name ="dataGrid2" ItemsSource="{Binding D2vm}" AutoGenerateColumns="False" Margin="0,0,0,106">
<DataGrid.Columns>
<DataGridTextColumn Header="S1" Binding="{Binding Pokaznuk}" />
<DataGridTextColumn Header="S2" Binding="{Binding NameGroup}" />
<DataGridTextColumn Header="S3" Binding="{Binding NumberGroup}"/>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="Save" Click="ShowHideDetails2" Background="Red"
Visibility="{Binding IsFromDatabase, Converter={StaticResource BoolToVisibilityConverter}, ConverterParameter=Inverse}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
Ответы (1 шт):
Судя по комментариям вам нужно при создание объекта для DataGrid подгружать данные. Для этого вы можете подписаться на событие CollectionChanged
у ObservableCollection и сделать нужную обработку.
// Создание ObservableCollection
ObservableCollection<string> myCollection = new ObservableCollection<string>();
// Подписка на событие CollectionChanged
myCollection.CollectionChanged += MyCollection_CollectionChanged;
// Метод-обработчик события CollectionChanged
private void MyCollection_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
if (e.Action == NotifyCollectionChangedAction.Add)
{
foreach (var newItem in e.NewItems)
{
//Какая то обработка
}
}
}
Полезные ссылки для чтивы: https://www.gangofcoders.net/solution/notify-observablecollection-when-item-changes/ https://metanit.com/sharp/tutorial/4.13.php https://www.itcodar.com/csharp/implementing-collectionchanged.html
Про mvvm простыми словами если вы используете события по типу Click и т.п для работы с View частью это не нарушает mvvm. Но если у вас идет работа с бизнес логикой, то это нарушает паттерн, так как вы используете часть-которая должна быть вынесена в отдельный слой для этого.