我試圖將文本框的內容綁定到我在控件內創建的屬性,但沒有成功。否則,我找到了一種方法,但它很複雜,我寧願更簡單。無論如何,這是最終代碼:綁定代碼頭痛的屬性
public partial class DateListEditor : UserControl, INotifyPropertyChanged {
private int _newMonth;
public int newMonth {
get { return _newMonth; }
set {
if(value < 1 || value > 12)
throw new Exception("Invalid month");
_newMonth = value;
NotifyPropertyChanged("newMonth");
}
}
public DateListEditor() {
InitializeComponent();
DataContext = this;
newMonth = DateTime.Now.Month;
}
// ...
然後在XAML:
<TextBox x:Name="uiMonth" Text="{Binding newMonth, Mode=TwoWay, ValidatesOnExceptions=True}"/>
這個事情的作品。它會預先填充當前月份的文本框,並在焦點丟失時驗證它:很好。
但是我怎樣才能避免XAML線,並做一切代碼?我似乎無法解決這個問題。我試過這段代碼,但沒有任何反應:
InitializeComponent();
Binding b = new Binding("Text") {
Source = newMonth,
ValidatesOnExceptions = true,
Mode = BindingMode.TwoWay,
};
uiMonth.SetBinding(TextBox.TextProperty, b);
DataContext = this;
我該如何做到這一點,而無需在XAML中設置綁定?
十分感謝!我從來沒有能夠明白項目去哪裏:) – Palantir 2011-04-15 09:26:54