Вы запускаете функцию в настройщике свойства, которое вы связываете с текстовым полем. Вы также должны установить UpdateSourceTrigger привязки к PropertyChanged, чтобы заставить его запускать каждый раз, когда вы изменяете содержимое текстового поля.
Функция, инициированная в сеттере, должна обновлять ObservableCollection, что приведет к тому, что DataGrid обновит его содержимое.
Se пример кода ниже, код не компилируется, но показывает общую идею.
XAML:
<DataGrid ItemsSource="{Binding Rows}" AutoGenerateColumns="False" >
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Text}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
SubviewModel.cs:
public SubViewModel(ViewModel vm)
{
_vm = vm;
}
private string _text;
private ViewModel _vm;
public string Text
{
get
{
return _text;
}
set
{
if (_text == value)
{
return;
}
_text = value;
OnPropertyChanged("Text");
RefreshResult();
}
private void RefreshResult()
{
// Do something with the _text and manipulate the _vm.Rows?
}
ViewModel.cs:
private ObservableCollection<SubViewModel> _rows;
public ViewModel()
{
//Initialize the sub view models
_rows = new ObservableCollection<SubViewModel>();
//Populate the list somehow
foreach (var r in sourceOfRows)
{
_rows.Add(new SubViewModel(this));
}
}
public ObservableCollection<SubViewModels> Rows
{
get
{
return _rows;
}
}
я сделал это, но, чтобы сделать это правильно это большая задача, чем вы понимать. С чего начать? – slugster
В текстовом поле я знаю рабочее, но текстовое поле в виде сетки, я понятия не имею ... пожалуйста, помогите – Jinesh
@ user3192678: что означает «GridView» в контексте WPF? Вы имеете в виду какой-то ListView с GridView? Если да, то каков источник элементов для ListView и как он связан с источником элементов для DataGrid? – Dennis