Моя двусторонняя привязка просто работает из источника в TextBox - я вижу значение по умолчанию в TextBox и даже новое значение, когда я изменяю его из кода, но когда я изменяю текст в TextBox значение не обновляется в модели, даже если TextBox теряет фокус. DataContext также установлен.
Version.Set даже не вызывается - проверяется путем установки точки останова.
XAML:
<DataGrid ItemSource="{Binding Issues}">
<DataGrid.RowDetailsTemplate>
<TextBox Text="{Binding Path=TestReport.Version, Mode=TwoWay}"/>
</DataGrid.RowDetailsTemplate>
</DataGrid>
Модели:
public class TestIssue
{
public JiraIssue Issue { get; set; }
public TestReport TestReport { get; set; }
}
public class TestReport : INotifyPropertyChanged
{
private string version = "Defalut Value";
public string Version
{
get => this.version;
set
{
if (value == this.version) return;
this.version = value;
this.OnPropertyChanged();
}
}
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
Код позади:
public partial class MainWindow : Window
{
public ObservableCollection<TestIssue> Issues { get; set; } = new ObservableCollection<TestIssue>();
public MainWindow()
{
this.DataContext = this;
this.InitializeComponent();
}
}
РЕДАКТИРОВАТЬ: Явная установка UpdateSourceTrigger работает, даже устанавливая его на FocusLost, что меня еще больше смущает.