基本的に、txtFullName という名前のテキスト ボックスに (一方向で) バインドするにはどうすればよいですか。最初は、ToString が "" を返すため、テキスト ボックス内のテキストはすべてクリア/空白になります。ただし、FirstName または LastName を変更しても、FullName に対するバインディングは更新されません。これを行う方法はありますか?
また、(フィールドだけでなく) メソッドにバインドする方法はありますか? つまり、バインドを直接 ToString() メソッドに設定し、FirstName または LastName が変更されたときに更新するようにしますか?
ああ、これを処理する何らかの一般的な方法があれば、それは非常に素晴らしいことです... FullName フィールドの属性や ToString メソッドの属性のように、変更を探すプロパティを指定します。
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Text;
using System.Windows;
using System.Windows.Controls;
namespace AdvancedDataBinding
{
public class UserEntity
{
static UserEntity()
{
FirstNameProperty = DependencyProperty.Register("FirstName", typeof(String), typeof(UserEntity));
LastNameProperty = DependencyProperty.Register("LastName", typeof(String), typeof(UserEntity));
}
public String FirstName
{
get { return (String)GetValue(FirstNameProperty); }
set { SetValue(FirstNameProperty, value); }
}
public static readonly DependencyProperty FirstNameProperty;
public String LastName
{
get { return (String)GetValue(LastNameProperty); }
set { SetValue(LastNameProperty, value); }
}
public static readonly DependencyProperty LastNameProperty;
public String FullName
{
get { return ToString(); }
}
public override string ToString()
{
return FirstName + " " + LastName;
}
}
}