0

私はWPFとバインディングが初めてです。私は自分の問題の解決策を見つけようとしていましたが、まだ何かが欠けています;/ UserControl にある TextBox からデータを取得し、それをメイン ウィンドウにあるプロパティに配置したいと思います。いいえ ;/

私は簡単なクラスを持っています

public class User
{
    public string Name {get; set;}
    public string Age {get; set;}
}

2 つの TextBox を持つ UserDetails という単純なユーザー コントロール

<TextBox Text="{Bind Name}" />
<TextBox Text="{Bind Age}" />

UserDetails UC は、次のようにメイン ウィンドウに配置されます。

<uc:UserDetails DataContext="{Binding User, Mode=TwoWay}" />

MainWindow ViewModelにはプロパティがあります

public User User { get; set;}

MainWindow には、クリックすると UserDetials UC からのデータでユーザー プロパティを埋めるボタンもあります。今はかなり遅く、朝までに終わらせる必要があるので、直接的な解決策をいただければ幸いです.

それを行う方法はありますか?上記の例は非常に単純ですが、その方法を教えていただければ、残りの問題を処理できます。

4

2 に答える 2

1

以下のことを試してみてください。

  • ビュー モデルを MainWindow の DataContext に設定していることを確認してください。ビュー モデルに別のクラスを使用しておらず、コード ビハインドのみを使用している場合でも、DataContext を割り当てる必要があります。
  • 単なるタイプミスかもしれませんが、あなたのテキスト ボックスには、時代についても同じ{Bind Name}ことが書かれています。{Binding Path=Name, Mode=TwoWay}例のようにクラスではなく、プロパティでバインドモードを双方向に設定する必要があります。
于 2012-06-28T22:06:54.407 に答える
0

INotifyPropertyChangedインターフェイスを実装し、プロパティセッターでPropertyChangedイベントを発生させる必要があります。あなたはあなたMainViewModelUserクラスのためにそれをする必要があるでしょう。これがどのように行われるかの例です。

于 2012-06-28T23:36:44.680 に答える