这可能很明显,但我找不到最好的方法。

我想在列表框中显示用户的待办事项。这些TODO在数据库中,由ID,用户ID和描述组成。

用户登录到该应用程序。

如何为该用户ID检索TODO并将其设置为绑定到ListBox?

我正在尝试使用一个Objectdataprovider,但我无法弄清楚如何将其与非静态物质结合使用(例如我的_dbservice,userId,language等)。

是使所有这些内容在后面的代码中静态与绑定的唯一选择吗?

如果是这样,这意味着ObjectDatapRovider不是很有用,不是吗?我发现很多示例与硬编码参数一起使用,但是我几乎看不到我需要这样的功能的任何情况。

有帮助吗?

解决方案

我使用我所有的WPF 模型视图视图模型 图案。我在那里给了您一个链接,但是Google会为您提供负载。 MVVM似乎是WPF的标准模式。 这个项目 可能比您需要的要复杂得多,但写得很好,可以带回家使用MVVM。

基本上,您创建数据模型。在这种情况下,您可能会创建一个具有属性ID,用户ID和描述的简单类(我将其称为待办事项)。使用您的首选机制从数据库中获取这些收集。链接到SQL,实体框架,标准查询等等。

然后,您将拥有视图模型 - 对于该模型的每个实例,您都有一个ViewModel的实例:VM对M和“转发”属性具有引用。 ViewModel是您用来操纵模型的方法。

然后,您有了您的观点 - 这是UI。您将视图的DataContext设置为ViewModel,然后将绑定自动绑定到ViewModel。您的观点最终只是您可以看到的东西。所有工作都在ViewModel中完成。这意味着非常容易测试。

因此,当您单击视图中的按钮时,绑定将其传递到视图模型中的命令上,该命令操纵模型。

UI也是带有ViewModel的视图。因此,您的UI VM可能会从数据库中加载一系列型号,并将其粘贴在观测值。 ListBox项目集合将绑定到此ObservableCollection。

很难在这样的帖子中解释所有这些。阅读几篇文章,看看您的想法。我也仍然很新,但是我相信我对MVVM的阅读已经获得了回报。

其他提示

Hela Thomas,汤姆来自轨道上的一个:)

MVVM是必经之路。我在第四个项目中,如果您使用MVVM,WPF确实会发光。您已经尝试了MVC(或在回收*轮胎上所做的MVP),这是一个很好的关注点。 MVVM更进一步,因为ViewModel对视图一无所知。

该视图绑定到ViewModel,因此它具有对其的引用(2方式,超级强大,并且超出了典型的MS演示)。 ViewModel只是一个POCO,是您视图,数据 +行为的表示。一旦您挖掘了此段,酷术语MVVM将没有秘密。

我看看我是否可以提出一个小演示。也许我稍后会有时间。我要想到的是绑定到ViewModel(文件2,POCO类,不要被误解的代码)的视图(XAML,文件1)。该模型可以是您喜欢的任何东西(服务层或直接到存储库)。使用2条绑定的功率,我们将绑定到可观察到的集合,这意味着如果我们添加/删除/...在集合中添加某些东西,视图将在无需我们投入能量的情况下将其拾取。

我的第一个WPF项目是使用Caliburn Micro(请参阅Codeplex)完成的,这是一个基于约定的强大框架。它使您远离铁杆WPF(主要是创建旅游依赖性属性),并且您可以在不完全了解WPF的情况下创建相对快速的东西。这本身就是一个缺点,但对我有用。从项目3开始,我自己开始驯服这些依赖性属性,这将使您成为更好的WPF开发人员。

我看到这个问题是从十月开始..您找到了一个好的解决方案吗?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top