2017-04-20 142 views
2

修改用户控制属性的值我有以下用户控制从另一个窗口

public partial class LayoutWindow : UserControl 
{ 
.... 
} 

该用户控制我有一个按钮以打开另一个窗口呼叫PopUp

所以我想更新LayoutWindow用户控件diagram.Bounds财产(这是画布大小),一旦按钮(OkButton_Click)点击里面PopUp窗口

所以我想以后的事

public partial class PopUp : Window 
{ 
    private void OkButton_Click(object sender, RoutedEventArgs e) 
    {   

      LayoutWindow lw= new LayoutWindow(); 
      lw.InitializeComponent(); 
      lw.diagram.Bounds = new Rect(0, 0, 400, 400); 
      Close(); 
    } 
} 

但在这方式它不更新以上propery,我该如何做到这一点

回答

2

您正在创建一个LayoutWindow的新实例在PopUp窗口。你需要访问已经存在的实例。要做到这一点最简单的方法很可能是用的LayoutWindow实例注入PopUp窗口,当你创建:

public partial class PopUp : Window 
{ 
    private readonly LayoutWindow _lw; 
    public PopUp(LayoutWindow lw) 
    { 
     InitializeComponent(); 
     _lw = lw; 
    } 

    private void OkButton_Click(object sender, RoutedEventArgs e) 
    { 
     _lw.diagram.Bounds = new Rect(0, 0, 400, 400); 
     Close(); 
    } 
} 

LayoutWindow.xaml.cs:

var popup = new PopUp(this); 
popup.Show(); 
+0

thnks我会申请这个,让你知道。 – kez

+1

ths这工作! :) – kez