绑定到属性从数据模型到其父ViewModel?

时间:2011-02-10 01:24:00

标签: silverlight data-binding datagrid mvvm

我正在使用M-V-VM模式。 我有一个ViewModel和一个DataModel的ObservableCollection。 DataModel列表与DataGrid数据绑定。

当渲染网格时,我希望其中一个字段是一个ComboBox(比方说一个字符串名称列表)。

此字符串名称列表是适用于所有行(即DataModel)的通用列表。

有没有办法将网格的字段级行属性绑定到父ViewModel?

我想避免的一个可能的解决方案是: 在DataModel中有一个get-property,它实质上返回了ViewModel的属性(字符串名称列表)。

1 个答案:

答案 0 :(得分:0)

您可以使用静态资源执行此操作。 例如。在xaml中定义你的静态资源

<UserControl.Resources>
   <mynamespace:MyViewModel x:Key="MyViewModel" />
</UserControl.Resources>

现在您可以在用户控件中引用此资源:

<Controls::DataGrid DataContext="{StaticResource MyViewModel}" ItemSource="{Binding MyItems}" ...
  <Controls:DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
      <ComboBox ItemsSource="{Binding MyItems, Source={StaticResource MyViewModel}" DisplayMemberPath="MyString" /> <!-- This does the job with the combo box and the strings -->
    </DataTemplate>
  </Controls:DataGridTemplateColumn.CellTemplate>
</Controls:DataGrid>

希望这有帮助,

BR,

TJ