В настоящее время я привязываюсь к List<T>
, поэтому мне нужно сделать конкретный набор для каждого столбца отдельным DataTemplate
так:
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock TextAlignment="Center"
Text="{Binding ObColl[1].Std, UpdateSourceTrigger=PropertyChanged}"
Background="{Binding ObColl[1].DienstColor, TargetNullValue=Transparent,FallbackValue=Transparent}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
но я хочу создать DataTemplate
один раз как ресурсы
<DataGrid.Resources>
<DataTemplate x:Name="MyCellTemplate">
<TextBlock TextAlignment="Center"
Text="{Binding Std, UpdateSourceTrigger=PropertyChanged}"
Background="{Binding DienstColor, TargetNullValue=Transparent,FallbackValue=Transparent}" />
</DataTemplate>
</DataGrid.Resources>
и использовать его как
<DataGridTemplateColumn CellTemplate="{StaticResource MyCellTemplate} ??{Binding ObColl[1]}??"/>
Но для этого мне нужно указать DataContext
(ObColl[Idx]) в моем DataGridTemplateColumn
, но как мне это сделать?
РЕДАКТИРОВАТЬ
xaml должен выглядеть так:
<DataGrid Name="dataGrid1"
ItemsSource="{Binding Itemlist, UpdateSourceTrigger=PropertyChanged}">
<DataGrid.Resources>
<DataTemplate x:Key="MyCellTemplate">
<TextBlock TextAlignment="Center"
Text="{Binding Std, UpdateSourceTrigger=PropertyChanged}"
Background="{Binding DienstColor, TargetNullValue=Transparent, FallbackValue=Transparent}" />
</DataTemplate>
</DataGrid.Resources>
<DataGrid.Columns>
<!-- Column 1 -->
<DataGridTemplateColumn CellTemplate="{StaticResource MyCellTemplate}"
DataContext={Binding ObColl[0]}/>
<!-- Column Header 2 -->
<DataGridTemplateColumn CellTemplate="{StaticResource MyCellTemplate}"
DataContext={Binding ObColl[1]}/>
</DataGrid.Columns>
</DataGrid>
DataContext={Binding ObColl[1]}
- проблемная часть, потому что ее не существует....
DataContext
изDataGridTemplateColumn
? Это уже неявно сделано элементом управленияDataGrid
, не так ли? ВDataTemplate
у вас уже должен быть доступ к свойствам объекта(ов) в коллекции, данные которой привязаны к свойствуDataGrid.ItemsSource
. - person Sheridan   schedule 20.11.2013[0]
(чтобы получить первый), но если я использую DataTemplate как StaticResource, мне нужно указать DataContext.. . - person WiiMaxx   schedule 20.11.2013List<T>
не задано как свойствоDataGrid.ItemsSource
? если я использую DataTemplate как StaticResource, мне нужно указать DataContext - я не думаю, что это правда. Единственный раз (в этой ситуации), когда вам нужно указатьDataContext
, это если вы хотитеBind
к объекту, отличному от объекта в коллекции, данные которого привязаны к свойствуDataGrid.ItemsSource
... это that< /i> что ты пытаешься сделать? - person Sheridan   schedule 20.11.2013DataGrid.ItemsSource
- это список MyRow, который содержит 2 свойства, первое из которых -MyRowheader
, а второе -MyCellList
, которое являетсяList<T>
- person WiiMaxx   schedule 20.11.2013MyCellList
в каждой строке вашегоDataGrid
? Если да, то это то же самое значение или другое значение изMyCellList
в каждой строке? - person Sheridan   schedule 20.11.2013