如何将放置在Viewmodel中的属性绑定到Wpf DataGrid的每一行?

时间:2012-08-02 09:08:39

标签: wpf mvvm wpfdatagrid

我需要像DataGridTemplateColumn这样的EllementStyle和EdititngElementStyle,因为我想将一个属性绑定到datagrid的每一行,而且这个属性在ViewModel中,我在viewmodel中有一个这个属性的实例,但是需要绑定那个的diffrenent实例到每一行!(此属性不在DataGrid.ItemSource中)

我使用EllementStyle和EdititngElementStyle为DataGridTextColumn做了类似的事情,但似乎DataGridTemplateColumn没有这个属性? 任何想法?

编辑:

<DataGridTemplateColumn >
      <DataGridTemplateColumn.CellTemplate>
         <DataTemplate>
            <TextBox Text="{Binding DataContext.MYProperty, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}"/>    
          </DataTemplate>
     </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

之前我为DataGridComboBoxColumn做了类似的事情并且它可以工作。

   <DataGridComboBoxColumn 
          DisplayMemberPath="Name" SelectedValuePath="ID" 
          SelectedValueBinding="{Binding DocKindID}">
        <DataGridComboBoxColumn.ElementStyle>
           <Style TargetType="{x:Type ComboBox}">
              <Setter Property="ItemsSource" Value="{Binding Path=DataContext.DocKindList, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" />
             </Style>
         </DataGridComboBoxColumn.ElementStyle>
         <DataGridComboBoxColumn.EditingElementStyle>
             <Style TargetType="{x:Type ComboBox}">
                <Setter Property="ItemsSource" Value="{Binding Path=DataContext.DocKindList, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" />
             </Style>
         </DataGridComboBoxColumn.EditingElementStyle>
     </DataGridComboBoxColumn> 

0 个答案:

没有答案