0

我有一个使用数据绑定的数据网格。此 Datagrid 显示需要打印的文档。我使用实体框架。

<Datagrid.Columns>
<DatagridTextColumn Header"Printed On" Binding="{Binding printed_on, Mode=OneWay,  NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True,  UpdateSourceTrigger=PropertyChanged, BindsDirectlyToSource=True,  IsAsync=True}" >

<DatagridTextColumn Header"State" Binding="{Binding state1.description,           Mode=OneWay,                        NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True,UpdateSourceTrigger=PropertyChanged,  BindsDirectlyToSource=True, IsAsync=True}" >
</Datagrid.Columns>

如果我打印一个文档,我将字段printed_on 设置为实际日期,并将状态设置为printed,它是枚举中的一个整数。字段 state1.description 将“待打印”连接到 0,将“打印”连接到 1,将“错误”连接到 2。

如果我更新这两个值,我可以看到实际的打印日期,但 state1.description 在数据网格中似乎没有改变——仍然是“打开”,而不是“打印”

我还有另一个 Datagrid,我在其中展示了 mutch 文档是如何打印的,以及 mutch 文档必须如何打印。我有一个部分类,它扩展了由实体框架创建的类,并在属性中返回对文档的计数。但是,如果我更改文档的状态,它们也不会更新。类中的属性看起来像

partial public class headers
public readonly property intStateOpen as integer
get 
    return from ... count
end property

结束课

我应该怎么办?

4

1 回答 1

0

首先,欢迎来到 Stack Overflow。

当用户没有提供所有相关信息时,很难回答这样的问题......我们不是读心者。一般来说,你至少应该向我们展示你的类的结构,你是如何设置的,DataGrid.DataContext以及你使用的类DataContext,如果不同的话。

话虽如此,我可以在您的 XAML 中看到一个错误。你说ID你的对象正在更新,但Description不是。现在我猜numberBinding在你的例子中就是ID你正在谈论的那个(但是我不知道,因为你没有告诉我们)。

如果这是正确的,那么您应该Binding对您的Description属性使用类似的并删除对state1对象的引用:

<DatagridTextColumn Header"State" Binding="{Binding description, Mode=OneWay, 
    NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True, 
    UpdateSourceTrigger=PropertyChanged, BindsDirectlyToSource=True, IsAsync=True}">

通读此处的帮助页面以了解该网站上的工作方式可能对您来说是个好主意。您还可以在那里了解如何提出一个好问题


更新>>>

好的,如果您要编写 WPF,您将需要使用INotifyPropertyChangedinterface。这用于通知对源或目标对象所做的更改的数据绑定属性,例如。来自代码隐藏/视图模型的数据或该数据绑定到的 UI 控件。您需要在视图模型(或设置为DataContext视图(或UserControl)上的类)中实现此接口。您可以按照 MSDN 上链接页面中给出的示例进行操作。

此外,在 WPF 中,您将真正受益于创建一个包含您想要在 UI 中编辑和/或显示的所有属性的视图模型类,这些属性应该设置DataContext为您的视图,或UserControl. 我认为您可能会遇到问题,因为您的属性目前无法在一个地方全部访问。

于 2013-10-16T10:48:59.800 回答