2013-03-04 84 views
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

在進一步的調查中,認購調用不會出現工作當我在我的主項目中使用用戶控件時,不在我用來測試它的小項目中。我不確定有什麼區別。

回答

1

幾個問題:

  1. 你有沒有在你的代碼ReactiveUI.Xaml參考?如果沒有正確加載,這將無法正常工作
  2. 您正在使用何種版本的ReactiveUI?
+0

我剛剛添加了對ReactiveUI.Xaml的引用,但似乎訂閱在選定項目更改時仍未觸發。但是,它似乎在應用程序啓動時被解僱了一次。有任何想法嗎? – 2013-03-05 08:56:12

+0

我使用NuGet將ReactiveUI依賴項添加到我的小測試項目中。它下載了ReactiveUI 4.4.3。訂閱電話現在可以使用!所以它肯定是一個參考或版本問題,雖然我不知道哪個變量同時發生變化:) – 2013-03-05 13:01:59

相關問題