none
子ウィンドウからMainWindowのコントロールにアクセスしたい RRS feed

  • 質問

  • お世話になってます。

    VS2015・C#でコードを書いています。

    mainwindow上のボタンから var ChildWindow = new ChildWindwo() のようなコードで子ウィンドウを作成しました。このChildWindow上ボタンを押したとき、変数のデータをmainwindow上のlabelコントロール等に設定したいのですが、うまくいきません。

    Childwindow上のコードで、

    mainwindow.label1.content = "ほえほえ"

    のように出来ると思ったのですが、インテリセンスに出てこないイメージです。ChildWindowからmainwindowのコントロールにデータ代入するにはどうすればいいでしょうか。

    よろしくお願いします。

    2016年3月11日 8:12

回答

  • こんにちは。

    ChildWindowに呼び出し元インスタンスを渡せばいいと思います。
    条件によってはOwnerだったり色々使えるかもしれませんが、とりあえず自作プロパティとかでも。

    public partial class MainWindow : Window
    {
    	public MainWindow()
    	{
    		InitializeComponent();
    	}
    
    	private void Button_Click(object sender, RoutedEventArgs e)
    	{
    		var child = new ChildWindow();
    		child.main = this;
    		child.Show();
    	}
    }
    
    public partial class ChildWindow : Window
    {
    	public ChildWindow()
    	{
    		InitializeComponent();
    	}
    
    	public MainWindow main { get; set; }
    
    	private void Button_Click(object sender, RoutedEventArgs e)
    	{
    		main.label1.Content = "ほえほえ";
    	}
    }
    

    2016年3月11日 8:23
    モデレータ

すべての返信

  • こんにちは。

    ChildWindowに呼び出し元インスタンスを渡せばいいと思います。
    条件によってはOwnerだったり色々使えるかもしれませんが、とりあえず自作プロパティとかでも。

    public partial class MainWindow : Window
    {
    	public MainWindow()
    	{
    		InitializeComponent();
    	}
    
    	private void Button_Click(object sender, RoutedEventArgs e)
    	{
    		var child = new ChildWindow();
    		child.main = this;
    		child.Show();
    	}
    }
    
    public partial class ChildWindow : Window
    {
    	public ChildWindow()
    	{
    		InitializeComponent();
    	}
    
    	public MainWindow main { get; set; }
    
    	private void Button_Click(object sender, RoutedEventArgs e)
    	{
    		main.label1.Content = "ほえほえ";
    	}
    }
    

    2016年3月11日 8:23
    モデレータ
  • お世話になってます。

    どうもありがとうございます。

    ピンポイントで非常に助かりました。m(_ _;)m

    • 回答の候補に設定 shinichiH 2016年7月20日 6:11
    • 回答の候補の設定解除 shinichiH 2016年7月20日 6:12
    2016年3月14日 0:04