2012-03-19 22 views
1

我有一个数据网格内的以下列。正如你可以看到它的一个模板列,当它显示它的标签,并在编辑模式时,它会变成一个下拉框。我遇到的问题是,当用户想要将该行放入编辑模式以编辑特定的单元格时,该特定的下拉列表仅包含数字(0,1,2,3),他必须精确地点击该数字,否则没有任何反应。点击时我想要整个单元格来触发编辑模式。Xaml Datagrid下拉选择单元格非常挑剔

我该如何做到这一点?

<data:DataGridTemplateColumn Header="Retries" > 
        <data:DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <!--MouseLeftButtonUp="Label_MouseLeftButtonUp"--> 
          <sdk:Label Content="{Binding RetriesWrapper, Mode=OneWay,ValidatesOnDataErrors=True,NotifyOnValidationError=True}" /> 
         </DataTemplate> 
        </data:DataGridTemplateColumn.CellTemplate> 
        <data:DataGridTemplateColumn.CellEditingTemplate> 
         <DataTemplate> 
          <ComboBox ItemsSource="{Binding Source={StaticResource RetriesListItems}, Path=RetriesListItems}" 
             SelectedValue="{Binding RetriesWrapper, Mode=TwoWay, ValidatesOnDataErrors=True,NotifyOnValidationError=True}"> 
          </ComboBox> 
         </DataTemplate> 
        </data:DataGridTemplateColumn.CellEditingTemplate> 
       </data:DataGridTemplateColumn> 

回答

1

试试这个:

<sdk:Label Content="{Binding RetriesWrapper, Mode=OneWay,ValidatesOnDataErrors=True,NotifyOnValidationError=True},Background=Transparent" /> 

,这(可能是可选的):

<ComboBox ItemsSource="{Binding Source={StaticResource RetriesListItems}, Path=RetriesListItems}" 
      SelectedValue="{Binding RetriesWrapper, Mode=TwoWay, ValidatesOnDataErrors=True,NotifyOnValidationError=True}" 
      HorizontalAlignment=Stretch 
      Background=Transparent> 

编辑:背景=透明是一个常见的问题,也许这里是这样的以及... 看1)有:What is the worst gotcha in WPF?

+0

Thx Dav编号为您的答复。我试图按照建议先在组合框上添加Horizo​​ntalAlignment属性,然后在标签和组合框上添加Horizo​​ntalAlignment属性,但列仍然具有相同的行为。 – Stainedart 2012-03-19 15:52:57

+0

看我的编辑:我只是虽然这个,也许这是你面临的同样的问题。 – David 2012-03-19 15:57:41

+0

你是对的,它实际上是让我!谢谢大卫真的很感谢你的帮助! +1并回答。 – Stainedart 2012-03-19 19:13:18