使用TextBlock绑定变量

时间:2015-06-29 06:49:49

标签: c# xaml windows-store-apps microsoft-metro winrt-xaml

我的XAML代码(在标准空白页面模板的Page内)为

<Grid>
  <TextBlock x:Name="tbBindingBlock">
</Grid>

我在代码隐藏中有一个名为int的{​​{1}}。是否有一个简单的(因为我只绑定一个变量而不是一个集合)将两者绑定在一起的方式,以便iTestBinding的最新值(从代码隐藏中继续改变)总是显示在iTestBinding内?

编辑:背后的代码很短:

tbBindingBlock

1 个答案:

答案 0 :(得分:2)

您可以使用以下代码直接绑定您的值

<TextBlock x:Name="tbBindingBlock" Text="{Binding iTestBinding}">

保持你的值绑定为代码隐藏的属性,如此

      public int iTestBinding{ get; set; }

并在页面加载事件中设置datacontext,如下所示

      this.DataContext = this;

如果要更新按钮单击的值并在UI中反映,则需要实现PropertyChangedEventHandler。

 public event PropertyChangedEventHandler PropertyChanged;
 private void RaisePropertyChanged(string propertyName)
    {
        // take a copy to prevent thread issues
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }

调用RaisePropertyChanged(&#34;更改了属性名称&#34;),其中您更新了该属性的值。

最好保留属性的自定义get设置,以便我们可以从setter调用此方法。例如

    private string myText;
    public string MyText { 
        get {
            return myText;
    }
        set {
            myText = value;
            RaisePropertyChanged("MyText");
        }
    }