我想結合2種方式爲什麼我的2路綁定不行
在我的ViewModel,我有
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
其實就是類似於你會爲做一個類的類公司地址(姓名,國家,電話等),由EntityFramework創建。
在相應的視圖中,XAML是
<local:CompanyDetail CompanyName="{Binding SelectedCompany.CompanyName}"/>
在代碼中的自定義控制
// 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); }
}
的背後有沒有在視圖模型。有以下XAML
<TextBox Text="{Binding CompanyName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType=UserControl, AncestorLevel=1, Mode=FindAncestor}}" />
所以,當控件加載並顯示在屏幕上,我看到了值「測試名」的TextBox
但是,如果我通過鍵入更改值,然後單擊OK按鈕我可以看到該值尚未更新。
我假設它與INotifyPropertyChanged無關,因爲我認爲這是所有參考類型的任何方式?
我在做什麼錯?
你肯定AncestorLevel = 1?你不需要指定它,如果你指定AncestorType –