首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何知道数据绑定源/路径是否有效

如何知道数据绑定源/路径是否有效
EN

Stack Overflow用户
提问于 2018-04-17 07:05:31
回答 1查看 59关注 0票数 0

我是新的WPF数据绑定。我为数据绑定测试编写了一个小程序。有两个窗户。在Window1.xaml.cs中,

代码语言:javascript
复制
public partial class Window1 : Window, INotifyPropertyChanged
{
    public Window1()
    {
        InitializeComponent();
    }

    public event PropertyChangedEventHandler PropertyChanged;

    string test = "aaa";
    string Test
    {
        get { return test; }
        set { test = value; }
    }

在MainWindow.xaml.cs中,

代码语言:javascript
复制
public partial class MainWindow : Window, INotifyPropertyChanged
{

    public MainWindow()
    {
        InitializeComponent();
        Window1 W1 = new Window1();
        textBlock.DataContext = this;//data-binding source
        textBlock1.DataContext = W1;//data-binding source
    }

    public event PropertyChangedEventHandler PropertyChanged;

    private int a;
    public int A
    {
        get { return a; }
        set { a = value; }
    }

    private void button_Click(object sender, RoutedEventArgs e)
    {
        a++; //why does not it update the value in the UI?
    }
}

最后,在MainWindow.xaml中:

代码语言:javascript
复制
    <Button x:Name="button" Click="button_Click"/>
    <TextBlock x:Name="textBlock" Text="{Binding A}"/>
    <TextBlock x:Name="textBlock1" Text="{Binding Test}"/> //Why does not it work?

当我单击按钮时,我希望更新MainWindow UI,以及从另一个窗口绑定一个字符串类型值"aaa“。但我不知道哪里出了问题。我也不知道是否有一种方法来检查绑定源和路径是否有效。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-17 07:34:06

来解决这两个问题。正如Sinatr和Alex提到的,

首先,

代码语言:javascript
复制
public string Test
{
    get { return test; }
    set { test = value; }
}

第二,

代码语言:javascript
复制
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyname)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(propertyname));
        }
    }

private void button_Click(object sender, RoutedEventArgs e)
{
    a++; //why does not it update the value in the UI?
    OnPropertyChanged("A");
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49871856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档