私のMVVMテストプロジェクトでは、テキストボックスをビューモデルのオブジェクトにバインドしたいと考えています:
public class ContactViewModel : BaseNotifyPropertyChanged
{
Contact _selectedItem;
public ContactViewModel()
{
ContactModel contactModel = new ContactModel();
_selectedItem = contactModel.ContactList[1]; // this contains first contact from the list;
}
}
public Contact SelectedContact
{
get
{
return _selectedItem;
}
}
私の Contact クラスでは、最初の連絡先の名を表示するために ToString メソッドをオーバーライドしています。
public override string ToString()
{
return _firstName.ToString();
}
そして、これが私の XAML バインディングです。
<TextBox Height="23" HorizontalAlignment="Left" Name="SelectedItemTextBox" Text="{Binding Path=SelectedContact}" VerticalAlignment="Top" Width="120" />
そして、何らかの理由で、このテキストボックスは常に空です。しかし、私が変わると
public String SelectedContact
{
get
{
return _selectedItem.LastName;
}
}
それは完全に機能します。