如何使用XAML从某个变量的值显示按钮上的某些值

时间:2015-06-10 08:59:25

标签: wpf xaml

假设我有一个在运行时得到一些值的变量,我有一些按钮,我希望使用WPF / XAML从变量中显示该值。我将能够绑定按钮上显示的内容用变量的值。 假设按钮显示而变量是show_value。

2 个答案:

答案 0 :(得分:0)

将按钮的content属性绑定到包含要显示的字符串的变量 - 确保显式实现INotifyPropertyChanged或使用dependency属性更新值:

<Button Content={Binding variable_name} />

此时了解您的数据背景非常重要。

答案 1 :(得分:0)

  • 列表项

使用ElementName

绑定
<StackPanel>
        <TextBox Text="{Binding Value}" x:Name="TBox"/>
        <Button Content="{Binding Text,ElementName=TBox}"></Button>
    </StackPanel>
  • 或者,如果无法从UI访问您的变量,只需将按钮内容绑定到该变量:

- 在您的视图模型后面的代码中实现INotifyPropertyChanged Interface

 public partial class MainWindow : Window,INotifyPropertyChanged
{

    private string _value  ;

    public string Value
    {
        get
        {
            return _value;
        }

        set
        {
            if (_value == value)
            {
                return;
            }

            _value = value;
            OnPropertyChanged();
        }
    }
    public MainWindow()
    {
        InitializeComponent();
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
    }
}

- 使用代码

设置视图DataContext
this.DataContext=this;

或通过Xaml

DataContext="{Binding RelativeSource={RelativeSource Self}}"

更新UI,使按钮的内容绑定到变量:

 <Grid>
    <StackPanel>            
        <Button Content="{Binding Value}"></Button>
    </StackPanel>
</Grid>