2011-06-29 36 views
4

我想知道如何让DataGridComboBoxColumn在不处于编辑模式时显示选定的项目文本?也可以这样做,编辑模式下的组合框最初显示选定的项目文本?DataGridComboBoxColumn单元格不显示选定的项目文本?

这是我的XAML:

<DataGridComboBoxColumn Header="Formatter" 
         SelectedItemBinding="{Binding Path=Format}"> 
    <DataGridComboBoxColumn.ElementStyle> 
    <Style TargetType=""> 
     <Setter Property="Text" Value="{Binding Path=FormatView.Name}" /> 
    </Style> 
    </DataGridComboBoxColumn.ElementStyle> 
    <DataGridComboBoxColumn.EditingElementStyle> 
    <Style TargetType="ComboBox"> 
     <Setter Property="ItemsSource" Value="{Binding Path=DefinedFormatters}" /> 
     <Setter Property="IsDropDownOpen" Value="True" /> 
     <Setter Property="ItemTemplate"> 
     <Setter.Value> 
      <DataTemplate> 
      <TextBlock Text="{Binding Path=Name}"></TextBlock> 
      </DataTemplate> 
     </Setter.Value> 
     </Setter> 
    </Style> 
    </DataGridComboBoxColumn.EditingElementStyle> 
</DataGridComboBoxColumn> 
+0

看看这个答案 这个最给帮助ü [http://stackoverflow.com/a/27408768/4048306][1] [1]:HTTP:// stackoverflow.com/a/27408768/4048306 – NourAldienArabian

回答

0

我很茫然,但也许尝试以下操作:删除ElementStyle,而是设置的DisplayMemberPath,如:

<DataGridComboBoxColumn Header="Formatter" SelectedItemBinding="{Binding Path=Format}" DisplayMemberPath="Name"> 

路径可能也是FormatView.Name,我没有清晰的数据结构图。你是如何设置DataGridComboBoxColumn的ItemsSource的?

+0

你能举一个代码示例吗? –

+0

添加了代码示例,不幸的是我现在无法验证语法的正确性 –

+0

这并没有帮助,让我也澄清一点,组合框正在工作,它已成功将值绑定到数据上下文,唯一的问题是不显示当前选定值的文本,只是一个空白单元格。谢谢, –

3

好吧,我想了很多谷歌搜索后。

但似乎你只是为ElementStyle做同样的事情,即使它不是在编辑时显示ComboBox的组合框的目标类型。

<DataGridComboBoxColumn Header="Formatter" SelectedItemBinding="{Binding Path=Format}"> 
     <DataGridComboBoxColumn.ElementStyle> 
      <Style TargetType="ComboBox"> 
       <Setter Property="ItemsSource" Value="{Binding Path=DefinedFormatters}" /> 
       <Setter Property="IsDropDownOpen" Value="True" /> 
       <Setter Property="ItemTemplate"> 
        <Setter.Value> 
         <DataTemplate> 
          <TextBlock Text="{Binding Path=Name}"></TextBlock> 
         </DataTemplate> 
        </Setter.Value> 
       </Setter> 
      </Style> 
     </DataGridComboBoxColumn.ElementStyle> 
     <DataGridComboBoxColumn.EditingElementStyle> 
      <Style TargetType="ComboBox"> 
       <Setter Property="ItemsSource" Value="{Binding Path=DefinedFormatters}" /> 
       <Setter Property="IsDropDownOpen" Value="True" /> 
       <Setter Property="ItemTemplate"> 
        <Setter.Value> 
         <DataTemplate> 
          <TextBlock Text="{Binding Path=Name}"></TextBlock> 
         </DataTemplate> 
        </Setter.Value> 
       </Setter> 
      </Style> 
     </DataGridComboBoxColumn.EditingElementStyle> 
    </DataGridComboBoxColumn> 
相关问题