0

私は mvvm の初心者なので、本当に助けが必要です。

私の wp7 アプリケーションでは、MVVM Light ツールキットを使用しようとしています。「メイン」と2モードの「新規」の2つのビューがあります。これは、アイテムの追加と編集を目的としています。

class Item
{
  public int ID {get; set;}
  public string Name {get; set;}
}

MainView から NewView に移動するときに、アイテムを編集する場合は、クエリ文字列に「Name」パラメーターを追加します。NewViewにはテキストボックスがあります:

<TextBox Grid.Column="1" Name="txtListName" Text="{Binding ItemName}"/>

新しいViewModel:

class NewViewModel
{
  public string ItemName { get; set; }
}

このようにNewView.xaml.csのコードなしで NewViewから ItemName プロパティを設定するにはどうすればよいですか

(this.DataContext as NewViewModel).ItemName = name;

少し早いですがお礼を!

4

1 に答える 1

1

私はこの問題を解決しました。NewView で、テキストボックスの双方向バインディングに設定しました。

<TextBox Grid.Column="1" Name="txtListName" Text="{Binding ItemName,Mode=TwoWay}"/>

次に、ビューのロードされたイベントで、このテキストボックスのテキストのプロパティを設定します:

void NewView_Loaded(object sender, RoutedEventArgs e)
{
    String name;
    if (NavigationContext.QueryString.TryGetValue("Name", out name))
        this.txtListName.Text = name;
}

その後、NewViewModel のプロパティ ItemName が設定されます!

于 2013-02-20T05:11:27.300 に答える