1
我試圖使用ReactiveUI訂閱UserControl上依賴項屬性 中的更改。在ReactiveUI中訂閱用戶控件上的依賴屬性
我看到了另一個堆棧溢出應答(Combine dependency properties)中描述的技術,但我在某處執行時出錯。即使在下面的簡單情況下,當依賴項屬性更改時,我也無法啓動訂閱。
這裏是我的代碼的相關部分:
public partial class AutoCompleteBox : UserControl
{
public static readonly DependencyProperty SelectedItemProperty =
DependencyProperty.Register("SelectedItem",typeof(object),typeof(AutoCompleteBox),
new FrameworkPropertyMetadata{BindsTwoWayByDefault = true});
public object SelectedItem
{
get { return (object)GetValue(SelectedItemProperty); }
set { SetValue(SelectedItemProperty, value); }
}
public AutoCompleteBox()
{
InitializeComponent();
this.WhenAny(m=>m.SelectedItem,m=>m.Value)
.Subscribe(_=>
Console.WriteLine("Selected Item Changed!"));
}
}
編輯
我使用ReactiveUI版本4.4.2.0
在進一步的調查中,認購調用不會出現工作當我在我的主項目中使用用戶控件時,不在我用來測試它的小項目中。我不確定有什麼區別。
我剛剛添加了對ReactiveUI.Xaml的引用,但似乎訂閱在選定項目更改時仍未觸發。但是,它似乎在應用程序啓動時被解僱了一次。有任何想法嗎? – 2013-03-05 08:56:12
我使用NuGet將ReactiveUI依賴項添加到我的小測試項目中。它下載了ReactiveUI 4.4.3。訂閱電話現在可以使用!所以它肯定是一個參考或版本問題,雖然我不知道哪個變量同時發生變化:) – 2013-03-05 13:01:59