Имеется 2 окна. В одном (EmployeePage) окне DataGrid:
<DataGrid ItemsSource="{Binding Items}" x:Name="E_DataGrid" Grid.Row="0">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=FIO, UpdateSourceTrigger=PropertyChanged}" HeaderStyle="{StaticResource CenterGridHeaderStyle}" Width="*" Header="ФИО"></DataGridTextColumn>
</DataGrid.Columns>
И кнопка вызова другого (E_AddPage) окна:
<Button x:Name="E_Add" Click="E_Add_Click" Content="Добавить" />
В E_AddPage:
<TextBox x:Name="FIO_TextBox" FontSize="16" Margin="0,0,0,30" Width="300" Height="25" />
Используется паттерн MVVM, только начал его изучать, как и WPF в целом. Поэтому созданы еще 2 класса - Item.cs и ItemViewModel
Код Item.cs:
public class Item : INotifyPropertyChanged
{
string _fio;
public string FIO
{
get
{
return this._fio;
}
set
{
_fio = value;
OnPropertyChanged("FIO");
}
}
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged([CallerMemberName] string prop = "")
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(prop));
}
Там много данных должно быть, но для удобства я сократил до одной (FIO)
Код ItemViewModel:
class ItemViewModel
{
private ObservableCollection<Item> _items = new ObservableCollection<Item>();
public ObservableCollection<Item> Items { get; set; }
public ItemViewModel()
{
Items = new ObservableCollection<Item>
{
new Item{FIO="131" /*ProductName="435", OrderNumber=421124, PurchaseDate="432432453", DeliveryAvailability=true, DeliveryDate="244"*/ }
};
}
public void AddItem()
{
Item item = new Item();
Items.Insert(0, item);
}
}
Как мне сделать так, чтобы с текстбокса одного окна занисились данные в датагрид другого окна?
OnPropertyChanged("FIO")можно заменить на простоOnPropertyChanged(), так как[CallerMemberName]сам подставит нужное значение. – aepot Feb 03 '21 at 08:17Как мне сделать так, чтобы с текстбокса одного окна занисились данные в датагрид другого окна?, но вы не показывается как окно открывается, как вы сами пытаетесь туда передать данные, вы просто показали разметку кнопки (где нарушаете MVVM, ибо используете событиеClick) и показываете ваши данные, все. От нас тогда вы что хотите, чтоб мы за вас написали открытие нового окна? Ок, тогда это дубликат. – EvgeniyZ Feb 03 '21 at 15:36