Question

ハードボイルド探偵 on Fri, 11 Mar 2016 08:12:43


お世話になってます。

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

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

Childwindow上のコードで、

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

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

よろしくお願いします。


Sponsored



Replies

Tak1wa on Fri, 11 Mar 2016 08:23:42


こんにちは。

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 = "ほえほえ";
	}
}

ハードボイルド探偵 on Mon, 14 Mar 2016 00:04:33


お世話になってます。

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

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