[英]WPF - Passing parameter from Dialog Window to UserControl
我正在使用DependencyProperty將參數從DialogWindow傳遞到UserControl。 我想要在UserControl構造函數中將該參數傳遞給視圖模型。
該屬性始終返回null,並且永遠不會設置。
碼:
主窗口:
var dialog = new DialogWindow();
dialog.ShowDialog();
DialogWindow.xaml
<TabControl>
<TabItem Header="Data Source">
<local:DataSourceView Test="Something" />
</TabItem>
</TabControl>
DataSourceView.xaml.cs
public static readonly DependencyProperty TestProperty =
DependencyProperty.Register("Test", typeof(object), typeof(DataSourceView));
public object Test {
get { return (object)GetValue(TestProperty); }
set { SetValue(TestProperty, value); }
}
public DataSourceView() {
InitializeComponent();
DataContext = new DataSourceViewModel(Test);// Test is always null
}
您可以將DependencyProperty.Register
方法的重載與PropertyMetadata
,該方法將具有PropertyChangedCallback
參數並觀察數據綁定過程。
public static readonly DependencyProperty TestProperty =
DependencyProperty.Register("Test", typeof(object), typeof(DataSourceView), new PropertyMetadata(TestPropertyChangedCallback
));
private static void TestPropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
System.Diagnostics.Debug.WriteLine(e.NewValue);
System.Diagnostics.Debug.WriteLine(e.OldValue);
}
以下鏈接包含類似問題的解決方案:
“該屬性始終返回null,並且永遠不會被設置。” - 是錯的。 在DataSourceView構造函數中,該屬性為null。 創建DataSourceView實例后,屬性將設置為“ Something”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.