2013-08-31 2 views
1

У меня есть DataGridTemplateColumn:WPF: DataGridTemplateColumn на сервере Windows 2003/2008

<DataGridTemplateColumn CellStyle="{x:Null}" Width="85" Header="{Extentions:DisplayName Type=Type:StandardClass, PropertyName=ProductKind}"> 
        <DataGridTemplateColumn.CellEditingTemplate> 
         <DataTemplate> 
          <ComboBox ItemsSource="{Binding ElementName=viewSourceDataGrid, Path=DataContext.ProductKindCollection}" 
             DisplayMemberPath="Title" Style="{x:Null}" 
             SelectedValue="{Binding ProductKind, ValidatesOnDataErrors=True, ValidatesOnExceptions=True, UpdateSourceTrigger=PropertyChanged}" /> 

         </DataTemplate> 

        </DataGridTemplateColumn.CellEditingTemplate> 

        <DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <TextBlock 
             Text="{Binding ProductKind.Title, ValidatesOnDataErrors=True, ValidatesOnExceptions=True, UpdateSourceTrigger=PropertyChanged}" /> 

         </DataTemplate> 
        </DataGridTemplateColumn.CellTemplate> 

       </DataGridTemplateColumn> 

А также попробовал:

<DataGridComboBoxColumn Header="{Extentions:DisplayName Type=Type:StandardClass, PropertyName=ProductKind}" 
        DisplayMemberPath="Title" 
            SelectedItemBinding="{Binding ProductKindID, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnValidationError=True,ValidatesOnDataErrors=True}"> 
        <DataGridComboBoxColumn.ElementStyle> 
         <Style TargetType="{x:Type ComboBox}" BasedOn="{StaticResource EditBaseStyle}"> 
          <Setter Property="ItemsSource" Value="{Binding ElementName=viewSourceDataGrid, Path=DataContext.ProductKindCollection}" /> 
         </Style> 
        </DataGridComboBoxColumn.ElementStyle> 
        <DataGridComboBoxColumn.EditingElementStyle> 
         <Style TargetType="{x:Type ComboBox}" BasedOn="{StaticResource EditBaseStyle}"> 
          <Setter Property="ItemsSource" Value="{Binding ElementName=viewSourceDataGrid, Path=DataContext.ProductKindCollection}" /> 
         </Style> 
        </DataGridComboBoxColumn.EditingElementStyle> 
       </DataGridComboBoxColumn> 

Все отлично работает на Win 7, но проверили их на победу сервере 2008 и 2003 и результат:

DataGridComboBoxColumn

Я повторно переехал стили клетки, и DataGrid, но до сих пор (как вы видите) ComboBox элементы не появляются

+0

И чем вопрос? –

+0

@Anatoliy Nikolaev: только что добавлено – Mohsen

+0

Вы протестировали программу под другими операционными системами? (Windows XP, Windows 8). –

ответ

1

Наконец испытаны RelativeSource вместо ElementName.

И после того, как день траты времени работал нормально на Win Server !!

решение !!:

<DataGridTemplateColumn CellStyle="{x:Null}" Width="85" Header="{Extentions:DisplayName Type=Type:StandardClass, PropertyName=ProductKind}"> 
        <DataGridTemplateColumn.CellEditingTemplate> 
         <DataTemplate> 
          <ComboBox 
           ItemsSource="{Binding Path=DataContext.ProductKindCollection,RelativeSource={RelativeSource AncestorType=DataGrid}}" 
             DisplayMemberPath="Title" Style="{x:Null}" 
             SelectedValue="{Binding ProductKind, ValidatesOnDataErrors=True, ValidatesOnExceptions=True, UpdateSourceTrigger=PropertyChanged}" /> 

         </DataTemplate> 

        </DataGridTemplateColumn.CellEditingTemplate> 

        <DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <TextBlock 
             Text="{Binding ProductKind.Title, ValidatesOnDataErrors=True, ValidatesOnExceptions=True, UpdateSourceTrigger=PropertyChanged}" /> 

         </DataTemplate> 
        </DataGridTemplateColumn.CellTemplate> 

       </DataGridTemplateColumn> 
Смежные вопросы