微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

真正微不足道的 WPF 绑定拒绝工作

如何解决真正微不足道的 WPF 绑定拒绝工作

数据绑定应该是使用 WPF 编写的应用程序的焦点中心,甚至是使用 WPF 编写的应用程序的“存在理由”,但遗憾的是,我对它的非常简单的测试中的绑定如下所示根本不起作用......到目前为止,似乎没有人能告诉我为什么它不起作用。 它从我的主代码库开始,因此在尝试调试问题时,我创建了这个简单的窗口(名为“bindingtest”),它有一个类似的从 sql Db 填充的客户数据网格。 ItemsSource 绑定可以正常工作。

在网格上方我有一个状态行,显示数据库名称、总记录和(如果有效)数据网格中当前选择的记录。很简单的东西吧?

基本上当前选中的项目是一个简单的 TextBlock,其 .Text 绑定到代码隐藏文件中的 FULL 属性,当然完全支持 PropertyChanged()。 (如下图所示)。

    private int customersTotal;
    public int CustomersTotal
    {
        {return customersTotal; }
        set {customersTotal = value;
            OnPropertyChanged ( nameof ( CustomersTotal ) );}
    }

Window 和 XAML 根文件名是“bindingtest” 下面指定的“BindTest”绑定是在 XAML 中声明的,并且没有显示任何错误(如 BindTest 下的“...”),因此清楚地将“bindingtest ? 的来源识别为有效的 DataContext。

这是一个非常简单的 TextBlock,它是状态行的一部分,但拒绝为 XAML 中的“CustomerCurrent”属性调用 Getter 注意悬停信息! CustomerCurrent 在此文件中的代码隐藏文件...

enter image description here

另外,我尝试使用 SAME Datacontext=this;在代码隐藏中 - 相同的非结果。仍然从未调用属性 Getter。 该属性是通过以下代码隐藏中的 Datagrid 的 Grid.SelectionChanged 事件处理程序中的行设置的:

int newsel = CustomersGrid. Selectedindex;
// Update the problem property !!
CustomerCurrent = newsel;

这可以正常工作,并且按预期调用 CurrentCustomer 的 Getter,并根据相关情况更改值。

我在互联网论坛等上尝试了所有可能的选项,但没有任何效果,它顽固地拒绝调用“CustomerCurrent”属性获取器并更新屏幕上 TexBlock 的文本。

作为背景,我在这个测试窗口的一个更复杂的例子上使用了这个窗口中的值转换器,它们工作得很好,所以一些绑定确实有效,只是不是最简单的例子。

谁能告诉我为什么这不起作用??我快疯了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?