1

以下のように手動で使用する日まで、フォーム データベース (エンティティ フレームワークで使用) からデータを挿入したいと考えています。

var member = new MorEntities();
Person one_person = new Person
{
   First_Name=txt_F_N.Text,
   Family_Name = txt_L_N.Text,
}
member.People.AddObject(one_person);
member.SaveChanges();

WPFで最もよく理解できるように、XAML(バインディング)には方法があります。オンラインでチェックして理解できませんでした。誰かが私が続ける小さな例を挙げてもらえますか

4

1 に答える 1

1

いわゆるプロパティをパブリックゲッターとセッターで使用して、それをテキストボックスにバインドできます

public class MainViewModel : NotificationObject
{
    public MainViewModel()
    {
        Person = new Person();
        SaveCommand = new DelegateCommand(SaveExecuted);
    }

    // Properties
    public Person Person { get; set; }

    // Commands
    public ICommand SaveCommand { get; set; }
    private void SaveExecuted()
    {
        // Do some save logic here!
    }

}

public class Person
{
    public string FirstName { get; set; }

    public string LastName { get; set; }

    public int Age { get; set; }
}

そしてあなたのテキストボックスXAMLで

<TextBox Text="{Binding Person.FirstName}" />
<Button Command="{Binding SaveCommand}" Content="Save"/>

コードビハインドにこの行を追加します

public MainWindow()
{
   InitializeComponent();
   DataContext = new MainViewModel(); //Add this line
}

そのようなものは、ビューの DataContext をそれ自体またはプロパティを使用する別のパブリック オブジェクトに設定することを忘れないでください。

また、 MVVM WPF を使用してコンサーンの分離を使用する良い方法も見てください。

View に Save という名前のボタンを作成し、他のプロパティで行うように、このボタンを Commandにバンドします。Execute メソッドで、データベースに保存するか、更新します。

NotificationObject と DelegateCommand はPrism 4のものです。

于 2012-09-10T11:50:14.577 に答える