我的问题是我对嵌套属性的订阅没有响应。
这是我的XAML:
<TextBox Header="Enter test data:"
Text="{Binding UserEntryTest.Synced.Value, Mode=TwoWay}" />
视图模型中的属性(提取):
private EditableFieldSynced<string> userEntryTest;
public EditableFieldSynced<string> UserEntryTest
{
get { return userEntryTest; }
set { this.RaiseAndSetIfChanged(ref userEntryTest, value); }
}
EditableFieldSynced中的Synced属性实际上是一个继承ReactiveObject的基类:
public T _synced;
public T Synced
{
get { return _synced; }
set { this.RaiseAndSetIfChanged(ref _synced, value); }
}
在它的构造函数中,我订阅了这样的Synced:
this.WhenAnyValue(x => x.Synced.Value)
.Subscribe(x => this.ApplyLocalChanges(x));
实际上,无论我在此订阅中添加哪个课程,当用户输入文字时它都没有响应......
我是ReactiveUI的新手,我做错了什么?
当然,如果我使用EditableFieldSynced中的属性ValueSynced来展平模型,该属性订阅了基于属性Synced.Value的更改的两种方式,它确实会触发,但我想以自动方式完成它 - - 如果可能的话。