我的要求是將自定義UserControl顯示爲彈出窗口。我試圖在Silverlight/MVVM中使用this方法來實現這一點。但我無法找到一種方法,可以將某些參數傳遞給彈出窗口。我通過this方法來實現它,但它不知何故無法正常工作。問題從XAML傳遞參數
這是我的XAML如何看起來像:
行爲到按鈕視圖1。這個按鈕的點擊,我打開一個彈出視圖2:
<cmds:PopupBehavior.CustomUI>
<views:View2 CategoryID="{Binding CategoryID, Mode=TwoWay}"/>
</cmds:PopupBehavior.CustomUI>
類別ID是一個依賴屬性爲視圖2,並綁定到視圖1的視圖模型一個同名的屬性。但由於某些原因,即使在View1視圖模型中設置正確,我總是會將ViewID中的CategoryID設置爲0。
我哪裏錯了?
編輯:
這裏是視圖2依賴屬性代碼:
public static readonly DependencyProperty CategoryIDProperty = DependencyProperty.Register
("CategoryID",typeof(int),typeof(View2),new PropertyMetadata(0));
public int CategoryID
{
get { return (int)GetValue(CategoryIDProperty); }
set { SetValue(CategoryIDProperty, value); }
}
的setter方法不會被調用的某些原因。
請你也可以在這裏包含你的依賴屬性代碼。我假設你已經調試過並確保傳遞給你的dp參數(你的dp屬性中的SetValue的斷點)也是0? –
我編輯帖子以包含DP代碼。並且setter永遠不會被調用,因此它採用DP註冊中提到的默認值。 – Vinod
我能想到的下一步是你有一個綁定問題,我假設你已經查看了你的輸出窗口,以確保沒有綁定問題,並且你檢查了你的getter在視圖1的屬性上被調用? –