2017-12-12 10 views
0

My DataGridObservableCollection<Entry>にバインドされています。 DataGrid.ItemsSource以来DataGridRowHeaderでのコレクションへのバインドが期待どおりに機能しない

public class Entry 
{ 
    public List<string> Types {get; set;} = new List<string>() {"Type1", "Type2"}; 
} 

私は、単一のDataGridRowDataContextがtypeof演算されることを期待Entryのコレクション(Entry)です。

<DataGrid ItemsSource="{Binding Entries}"> 
    <DataGrid.RowHeaderTemplate> 
     <DataTemplate> 
      <Border Width="100"> 
       <StackPanel>         
        <ComboBox ItemsSource="{Binding DataContext.Entries[0].Types, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}" /> 
        <ComboBox ItemsSource="{Binding Types}" /> 
       </StackPanel> 
      </Border> 
     </DataTemplate> 
    </DataGrid.RowHeaderTemplate> 
</DataGrid> 

最初のBindingが機能しています。第2の問題はありません。

Visual StudioのOutputウィンドウでは、まだBindingErrorを取得していません。

EntryごとにTypesを表示する必要があります。インデックスによるアクセスは機能しません。

答えて

1

これは動作するはずです:それは働いている

<ComboBox ItemsSource="{Binding DataContext.Types, RelativeSource={RelativeSource AncestorType=DataGridRowHeader}}" /> 
+0

!どうもありがとう !それはバインディングが 'DataGridRowHeader'から来ると認識されないのでしょうか? –

+0

はい、DataTemplateはDataGridRowHeaderからDataContextを継承しません。 – mm8

関連する問題