使用 TextBlock 绑定变量
Binding variable with TextBlock
我有我的 XAML 代码(在标准空白页模板的 Page
中)作为
<Grid>
<TextBlock x:Name="tbBindingBlock">
</Grid>
我在代码隐藏中有一个名为 iTestBinding
的 int
。是否有一种简单的方法(因为我只绑定一个变量而不是一个集合)将两者绑定在一起,以便 iTestBinding
的最新值(它不断从代码隐藏中更改)总是显示在里面tbBindingBlock
?
编辑:后面的代码很短:
public sealed partial class MainPage : Page
{
public int iTestBinding=0;
您可以使用以下代码直接绑定您的值
<TextBlock x:Name="tbBindingBlock" Text="{Binding iTestBinding}">
像这样在后面的代码中保持你的值绑定为 属性
public int iTestBinding{ get; set; }
并像这样在页面加载事件中设置数据上下文
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("changed property name") - 无论何时更新 属性 的值。
最好为 属性 保留自定义 get 集,以便我们可以从 setter.for 示例中调用此方法
private string myText;
public string MyText {
get {
return myText;
}
set {
myText = value;
RaisePropertyChanged("MyText");
}
}
我有我的 XAML 代码(在标准空白页模板的 Page
中)作为
<Grid>
<TextBlock x:Name="tbBindingBlock">
</Grid>
我在代码隐藏中有一个名为 iTestBinding
的 int
。是否有一种简单的方法(因为我只绑定一个变量而不是一个集合)将两者绑定在一起,以便 iTestBinding
的最新值(它不断从代码隐藏中更改)总是显示在里面tbBindingBlock
?
编辑:后面的代码很短:
public sealed partial class MainPage : Page
{
public int iTestBinding=0;
您可以使用以下代码直接绑定您的值
<TextBlock x:Name="tbBindingBlock" Text="{Binding iTestBinding}">
像这样在后面的代码中保持你的值绑定为 属性
public int iTestBinding{ get; set; }
并像这样在页面加载事件中设置数据上下文
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("changed property name") - 无论何时更新 属性 的值。
最好为 属性 保留自定义 get 集,以便我们可以从 setter.for 示例中调用此方法
private string myText;
public string MyText {
get {
return myText;
}
set {
myText = value;
RaisePropertyChanged("MyText");
}
}