绑定按钮wpf中的内容值

本文关键字:按钮 wpf 绑定 | 更新日期: 2023-09-27 18:11:13

我是Wpf的新手。基本上我实现了按钮内容值的动态变化。这是我的代码。

xaml:

<Button x:Name="btnTest"  Content="NO" HorizontalAlignment="Left"VerticalAlignment="Top" Width="233" Height="40" Click="btnTest_Click" />

Cs文件:

 private void btnTest_Click(object sender, RoutedEventArgs e)
    {          
        if (btnTest.Content.ToString() == "NO")
        {
            btnTest.Content = "YES";
        }
        else if (btnTest.Content.ToString() == "YES")
        {
            btnTest.Content = "NO";
        }
    } 

如何在"绑定"逻辑中实现相同的功能。

xaml:

  <Button x:Name="btnTest"  Content="{Binding ???}"   HorizontalAlignment="Left"VerticalAlignment="Top" Width="233" Height="40" Click="btnTest_Click" /> 

有人能帮忙吗?

绑定按钮wpf中的内容值

就像这样:

Content="{Binding XXX, Mode=TwoWay, ValidatesOnDataErrors=True}"

这将从DataContext获取值(在本例中为Content)。

编辑:

A)创建数据上下文(代码隐藏版本):

this.DataContext = new SomeViewModel();

你可以把它放在你的构造函数中(在control/form/whatever)…

B)最后SomeViewModel只是一个类:

public class SomeViewModel : IDataErrorInfo // sample interface
{
    private string _xxx;
    public string IP
    {
        get { return _xxx; }
        set { _xxx = value; }
    }
}

你可以试试这个

Content= "{Binding RelativeSource={RelativeSource Self}, Path=YNText, Mode=OneWay}"

并将其添加到

后面的代码中
public string YNText {
    get
    {
        _switch = !_switch;
        return _switch ? "YES" : "NO";
    }
}
private bool _switch;