次のように定義されたビューモデルにバインドされたユーザーコントロールがあるとします。
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; }
}
もちろん、ComboBoxには、値を持つListTypesからの選択は表示されません。
質問は、グリッドがバインドされているGrid.ColumnからViewModelのListTypesプロパティを、ListTypesと同じレベルのプロパティListTypesを持たないDataViewMyItemsに参照する方法です。
どんな助けでも大歓迎です