【问题标题】:Databinding to a reference Table WPF MVVM using Entity Framework使用实体框架将数据绑定到引用表 WPF MVVM
【发布时间】:2013-10-24 09:48:00
【问题描述】:

我有一个使用数据绑定的数据网格。此 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

结束课程

我该怎么办?

【问题讨论】:

    标签: .net wpf mvvm datagrid


    【解决方案1】:

    首先,欢迎来到 Stack Overflow。

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

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

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

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

    可能您可以阅读此处的help pages,以了解本网站的工作方式。你也可以在那里找到how to ask a good question


    更新>>>

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

    此外,在 WPF 中,您将真正受益于创建包含 所有要在 UI 中编辑和/或显示的属性的视图模型类,应设置为DataContext 以供您查看,或UserControl。我认为您可能会遇到问题,因为您的属性目前并非都可以在一个地方访问。

    【讨论】:

    • 好的,谢谢,我编辑了我的问题。请原谅,它也是更新的“printed_on”字段,不是数字,对不起。如果需要更多信息,请告诉我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多