当前位置: 首页 > 知识库问答 >
问题:

GetBindingExpression为databound元素返回null

师成弘
2023-03-14

请帮我检查数据库属性。

var uielement = something as FrameworkElement;
if (uielement != null)
{
    var sizeBinding = new[] { FrameworkElement.WidthProperty, FrameworkElement.HeightProperty }.Select(_ => uielement.GetBindingExpression(_)).ToList();
    if (sizeBinding.Count(_ => _ != null) > 0)
    {
        Trace.WriteLine(string.Format("found {0} bindings", sizeBinding.Count()));
    }
}
<UserControl Width="{Binding Size.Width, Mode=TwoWay}"
Height="{Binding Size.Height, Mode=TwoWay}"
> ... </UserControl>
<UserControl Width="{Binding Size.Width}"
 Height="{Binding Size.Height, Mode=TwoWay}"
> ... </UserControl>

然后,sizeBinding有第一个元素null(用于宽度)和绑定表达式实例(用于高度绑定)。我可以使用Mode=twoway设置绑定,但是我想知道为什么如果Mode没有设置为twoway就不会创建绑定实例。我认为这是因为表达式需要比路径更复杂。但是,我尝试了width=“{Binding size.width,mode=oneway}”,但是getBindingExpression返回null作为绑定。我尝试了BindingOperationsGetBinding*方法,但它们的行为与FrameworkElement.GetBindingExpression完全相同。

我谷歌搜索的唯一一个问题就是这个。但对我来说并不清楚

共有1个答案

齐英韶
2023-03-14

最肯定的原因是,在绑定建立之后,explicity在某个地方设置了UserControl的width属性。

这样做将删除单向绑定(即用另一个本地值替换它),但保留TwoWay绑定(并更新其源属性)。

 类似资料:
  • 问题内容: 在我的工作中,我们有一个使用AngularJS创建的一页站点。 我们正在使用ui-router插件(版本0.2.0)。 最近,我注意到从一种状态切换到另一种状态时,该窗口不会滚动到顶部。 我什至尝试在每次状态更改(使用事件)时使用jQuery的功能将其手动滚动到顶部。但这没有用。 因此,我开始进行调查,并且注意到页面上的每个元素都返回0。 不仅如此,当我将其打印到控制台时,我得到0(无

  • 这工作正常: 我得到了一个非常好的JSON数组和对象。 现在的问题是,我喜欢将我的数据作为有效载荷放入响应中,以便能够设置标头和状态,或者返回一个错误对象作为有效载荷。但是不管用。 Mai 16,2012 7:00:35 PMorg.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor写响应错误消息警告:未找到响应类ArrayList的消息正文编写器。

  • 假设我有一个Employee类,它具有正确重写的equals和hashcode方法。 测试类如下所示 上述程序的输出为: 员工[ENO=1,FirstName=Karan,LastName=Mehara] 为什么distinct()方法返回重复的元素? 根据employee类的equals()和hashcode()方法,这两个对象是相同的。

  • Databound 提供了 JavaScript 简单的 CRUD API 到 Rails 的后端应用。 示例代码: User = new Databound('/users')User.where({ name: 'John' }).then(function(users) {    alert('Users called John');});User.find(15).then(functio

  • jsoup元素的文档。hasText方法说: 测试此元素是否有任何文本内容(不仅仅是空白)。 但是下面的例子不是这样说的: 输出是 我希望 有没有办法让JTAY考虑<代码>

  • 我已经用selenium编写了一个自动化测试用例来测试登录页面,应该点击忘记密码链接。浏览器打开并转到给定的url,但忘记密码链接不会自动点击,有人能告诉我的代码有什么问题吗。 基本代码 Browsers.java 数据属性 控制台: 超文本标记语言代码