1)製作一個公共財產,返回計數器值。將它命名爲 「計數器」
2)實施INotifyPropertyChanged和調用的PropertyChanged(新PropertyChangedEventArgs( 「計數器」))爲計數器值
3)的每一個變化而改變你的標記如下:
<TextBlock Text="{Binding Path=counter,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Window}}" />
這只是許多人的一種可能性。 This鏈接引導您瞭解DataBinding的概述。我可以想象這份文件將澄清上述步驟。
更新
正如您在您的評論希望,這裏的例子中,我假設你在主窗口。我根據上面的順序改變了一些東西:我在構造函數中設置了DataContext。因此沒有必要爲綁定使用相對源。兩種方式都是可能的(兩者都不是很優雅,但要學習WPF數據綁定,它們是合適的)。也許你會同時嘗試,唯一的區別是綁定聲明和構造函數代碼。
public partial class MainWindow : Window , INotifyPropertyChanged{
public event PropertyChangedEventHandler PropertyChanged;
int m_counter;
public MainWindow() {
InitializeComponent();
DataContext=this;
}
public int Counter {
get { return m_counter; }
set {
if (m_counter != value) {
m_counter = value;
OnPropertyChanged(new PropertyChangedEventArgs("Counter"));
}
}
}
protected virtual void OnPropertyChanged(PropertyChangedEventArgs e) {
if (null != PropertyChanged) {
PropertyChanged(this,e);
}
}
private void ClickNextButton(object sender, System.Windows.RoutedEventArgs e){
Counter += 1;
if (Counter == 1) { }
if (Counter == 2) { }
}
Continue with class declaration...
而XAML:
<TextBlock Text="{Binding Path=Counter}" />
<Button x:Name="Nextbt" Content="Next" Click="ClickNextButton"/>
來源
2011-01-18 22:47:18
HCL
目前的方法有什麼問題? – 2011-01-18 22:47:01
它不起作用。 – vladc77 2011-01-18 23:33:30