【问题标题】:Binding to ViewModel from XAML从 XAML 绑定到 ViewModel
【发布时间】:2010-07-20 12:16:43
【问题描述】:

我是 MVVM 模型的新手,所以我想要一些建议,我现在使用的解决方案似乎不起作用。

说明: 我有一个包含可观察客户集合的 Viewmodel, 我将这些显示在带有“后退”和“前进”按钮的网格中。 网格数据上下文设置为 SelectedCustomer,这是我的视图模型中的一个属性。

到目前为止一切都很好......

但是,客户有一个状态字段,它是数据库中状态行的整数。 在我的视图模型中,我填充了这个列表(observablecollection),但是当我尝试在 CustomerGrid 中填充一个组合框时,没有显示任何数据。我猜这是因为网格上的 Datacontext 是 SelectedCustomer 属性,而 statuslist 在根视图模型中。

问题是,我的组合框如何从客户网格中访问我的状态列表,或者我应该如何解决这种情况?

【问题讨论】:

    标签: data-binding xaml mvvm c#-4.0


    【解决方案1】:
    {Binding DataContext.ListOfStatus, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TypeOfParentControl}}}
    

    您可以绑定到父级的数据上下文

    【讨论】:

    • 好的,听起来很合乎逻辑,我的网格位于 StackPanel 中,因此使用以下内容应该可以: 但它没有,组合框仍然是空的。有什么想法吗?
    • 问题是我没有在 XAML 中设置对我的视图模型的引用,而是在我的 App.xaml 中。当我将我的视图模型声明为静态资源时,它起作用了。
    【解决方案2】:

    一些网格也允许绑定组合框列。这取决于网格 - 我从未在 WPF 或 Silverlight 中使用过网格,因此仅作为提示。

    【讨论】:

      猜你喜欢
      • 2012-10-14
      • 1970-01-01
      • 2017-01-23
      • 2012-08-15
      • 2017-12-14
      • 2011-03-01
      • 1970-01-01
      • 2013-08-07
      • 1970-01-01
      相关资源
      最近更新 更多