绑定活动但不呈现数据

时间:2015-01-20 23:29:49

标签: c# wpf xaml data-binding textbox

我设计了一个这样的文本框。

<TextBox x:Name="OrderId" 
         Text="{Binding CurrentOrder}"/>

在视图模型中,我可以看到断点点击了setter和getter,返回的值 值为。

public Order CurrentOrder
{
  get { return _currentOrder; }
  set
  {
    _currentOrder = value;
    OnPropertyChanged();
  }
}

但是,框中没有任何内容。我也手动输入框中的数字,然后导致绑定将源中的值更新回控件。它将盒子擦干净。就像 null 写在那里一样......当然我已经检查了订单中没有 null 值。

  1. 我能做错什么?
  2. 如何解决问题?
  3. 当然,我已经测试了不同的单向,双向等模式。徒劳无功。是否有必要将通知方法调用放在 Order 类中的属性的setter上?即使它不是用于双向模式吗?

1 个答案:

答案 0 :(得分:1)

我将从如何排除故障开始:

  1. 首先,在其他任何事情之前,检查您的输出窗口。是否有任何System.Data异常表明绑定有错误?

  2. 检查Snoop等工具中的元素。它通常会显示任何绑定错误。

  3. 做一些你已经完成的事情,确保调用setter,然后 getter来证明绑定正在评估。

  4. 现在可能出现的问题:

    1. 从我所看到的,您将Text直接绑定到一个对象。除非该对象覆盖ToString(),否则通常无法按预期工作。

    2. 从上面开始,手动输入字符串将非常混淆运行时,因为它不知道如何将字符串转换为对象。除非您使用转换器

    3. ,否则您看到的行为才有意义
    4. 当然,如果您使用转换器,则需要检查 代码中的断点/数据,以确保其按预期工作。

    5. 要编辑,如果您绑定到类的属性,并希望对该属性进行代码更改以传播到UI,是的,它需要引发{{1}并且该类需要实现PropertyChagned