2016-04-24 17 views
0

動作しませ結合し、私ははなぜ2つの方法は、私は私のViewModelでは、2つの方法</p> <p>をバインドしようとしている

private Temporary _selectedCompany; 
    public Temporary SelectedCompany 
    { 
     get 
     { 
      return this._selectedCompany; 
     } 
     set 
     { 
      if (this._selectedCompany == value || value == null) 
       return; 

      this._selectedCompany = value; 
      this.SelectedCompany.CompanyName = "TestName"; 
      base.OnPropertyChanged("SelectedCompany"); 
     } 
    } 

Temporaryはあなたのために行うだろうクラスに似たクラスを実際にされていCompanyAddress(名前、国、電話など)であり、EntityFrameworkによって作成されたものです。対応するビューで

、XAMLはViewModelにでは何もありませんカスタムコントロールの後ろにコードで

// Dependency Property 
    public static readonly DependencyProperty CompanyNameProperty = 
     DependencyProperty.Register("CompanyName", typeof(string), 
     typeof(CompanyDetail), null); 

    // .NET Property wrapper 
    public string CompanyName 
    { 
     get { return (string)GetValue(CompanyNameProperty); } 
     set { SetValue(CompanyNameProperty, value); } 
    } 

<local:CompanyDetail CompanyName="{Binding SelectedCompany.CompanyName}"/> 

です。私は次のように入力して値を変更し、[OK]ボタンをクリックした場合、私は、そこに以下のXAML

ので
<TextBox Text="{Binding CompanyName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType=UserControl, AncestorLevel=1, Mode=FindAncestor}}" /> 

、コントロールが読み込まれ、画面に表示されたとき、私は値を参照してください「テスト名は」TextBoxであるが、値が更新されていないことがわかります。

私はそれがすべての参照型のいずれかの方法だと思うので、私はそれがINotifyPropertyChangedとは何の関係もないと仮定していますか?

私は間違っていますか?

+0

により、双方向をバインドする依存関係プロパティを宣言することで明示的に設定することでよろしいAncestorLevel =です1? AncestorTypeを指定する場合は指定する必要はありません –

答えて

1

会社名は、バインディングが双方向に行われなければならない、どちらか

<local:CompanyDetail 
    CompanyName="{Binding SelectedCompany.CompanyName, Mode=TwoWay}"/> 

またはデフォルト

public static readonly DependencyProperty CompanyNameProperty = 
    DependencyProperty.Register(
     "CompanyName", typeof(string), typeof(CompanyDetail), 
     new FrameworkPropertyMetadata(
      null, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault)); 
+0

あなたは本当に知的な人です。これは、あなたが何週間も助けてくれた2回目のことです。ありがとうございました – MyDaftQuestions

関連する問題

 関連する問題