2012-04-28 71 views
2

鑑於結合到定義爲視圖模型一個usercontrol如下WPF相對結合例外

class MyViewModel 
{ 
    public DataView MyView { get; set; } 
    public DataView MyTypes { get; set; } 
} 

和XAML大致標記如下

<Grid> 
    <dxg:GridControl AutoPopulateColumns="True" Name="gridControl1" ItemsSource="{ Binding MyView}"> 
     <dxg:GridControl.Columns> 
      <dxg:GridColumn FieldName="col1"> 
       <dxg:GridColumn.EditTemplate> 
        <ControlTemplate> 
         <dxe:ComboBoxEdit Name="cmbTypes" 
         ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type UserControl}}, 
          Path=ViewModel.MyTypes}"/> 
        </ControlTemplate> 
       </dxg:GridColumn.EditTemplate> 
      </dxg:GridColumn> 
      <dxg:GridColumn FieldName="col2"/> 
      <dxg:GridColumn FieldName="col3" Width="75"/> 
     </dxg:GridControl.Columns> 
     <dxg:GridControl.View> 
      <dxg:TableView Name="tableView1" AutoWidth="True" ShowTotalSummary="True" /> 
     </dxg:GridControl.View> 
    </dxg:GridControl> 
</Grid> 

結合如下

internal MyViewModel ViewModel 
{ 
    get { return (MyViewModel)DataContext; } 
    set { DataContext = value; } 
} 

中當然組合框不顯示來自ListType的選擇,其值有

問題是 - 如何從Grid.Column中將Grid綁定到ViewModel 的ListTypes屬性的DataView MyItems,該DataView MyItems沒有屬性ListTypes,它與ListTypes處於同一級別!

任何幫助表示讚賞

回答

1

如果我理解正確的問題,我希望以下工作:

{Binding RelativeSource={RelativeSource AncestorType={x:Type UserControl}}, 
         Path=DataContext.MyTypes} 

這可能是Path=ViewModel.MyTypes不工作,只是因爲你的天堂」 t在ViewModel屬性上實施更改通知。正如我所說,雖然 - 你應該能夠與Path=DataContext.MyTypes相處得很好。

注意:您似乎將該屬性同時指MyTypesListTypes這個問題 - 不知道哪個對象模型是正確的。

+0

謝謝,工作! – Kumar 2012-04-29 22:34:29