2011-07-11 5 views
0

私はタッチスクリーンアプリケーションを開発しています。私は内容が「新しいプレーヤー」であるボタンを備えたフォームを持っていて、ユーザーが彼の名前を入力するためのテキストボックスを備えたキーボードが表示されています。今私は閉じるとき(または名前を入力中に)、親ウィンドウからのボタンは、ユーザーが入力した名前に内容を変更する必要があります。しかし、私は親にバインドを行うことはできません..どのように私はそれを行うことができますか?WPF C#子ウィンドウからボタンコンテンツを変更します。

答えて

1

WPFアプリケーションにModel-View-ViewModelパターンを実装しているのですか、またはデータバインディングをまったく使用していますか?

MVVMを使用する必要はありませんが、実際には何らかの方法でデータバインディングを使用する必要があります。

データバインディングでは、ボタンコンテンツをオブジェクトの文字列プロパティ(MVVMのビューモデル)にバインドします。そのオブジェクトはINotifyPropertyChangedインターフェイスを実装する必要があります。子ウィンドウのテキストボックスを同じオブジェクトの同じプロパティにバインドできます。

これで、ユーザーが新しいプレーヤー名を入力すると、ボタンが自動的に更新されます。

詳細が必要な場合は、ご意見をお寄せください。詳細をお寄せいただければ幸いです。

+0

返信いただきありがとうございます!私はdatabindigを使用していますが、私はバインド要素について考えていました。そのように、ユーザーが入力しているとき、親ウィンドウのボタンの内容を変更する必要があります..あなたはどうすればいいのですか?私は現在、データストレージを使用していません。概念の証明です。 – Max

0

あなたが好きなものを試すことができます。

var button = this.Parent.Controls.OfType<Button>().Select(b => b.Name == "NameOfControl").First(); 
button.Content = name; 

編集:そして、ジェイのアイデアは、この時に行くのでは正しい方法で、私はちょうどLINQを使用して、親からのコントロールにアクセスする別の方法を提供しました。

+0

System.Linqのほかに関数を使用するには何が必要ですか?私が入力するとdoesntが表示されます.. – Max

関連する問題