2012-04-28 6 views
2

Учитывая UserControl привязано к ViewModel определяется следующим образом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; } 
} 

Of конечно, ComboBox не отображает выбор из ListTypes, который имеет значения

Вопрос: как ссылаться на свойство ListTypes объекта ViewModel из Grid.Column, где Grid привязана к DataView MyItems, который не имеет свойства ListTypes, которое находится на том же уровне, что и ListTypes !!!

Любая помощь приветствуется

ответ

1

Если я правильно понял вопрос, я бы ожидать, что следующие работы:

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

Может быть, Path=ViewModel.MyTypes не работает просто потому, что у вас нет» t реализовано уведомление об изменении свойства ViewModel. Как я уже сказал, вы должны хорошо ладить с Path=DataContext.MyTypes.

Примечание: вы ссылаетесь на имущество как на MyTypes, так и на ListTypes в вопросе - не уверены, что подходит для вашей объектной модели.

+0

спасибо, что сработало! – Kumar

Смежные вопросы