2010-08-17 63 views
1

问候,力的DataGrid进入编辑模式下使用ListView控件时CellTemplate

在WPF DataGridTemplateColumn我有使用ListView和使用数据网格中的一个CellEditingTemplate CellTemplate。

<DataTemplate x:Key="LimitsTemplate"> 
    <ListView ItemsSource="{Binding Limits}" IsEnabled="False"> 
     <ListView.ItemTemplate> 
      ... 
     </ListView.ItemTemplate> 
    </ListView> 
</DataTemplate> 
<DataTemplate x:Key="LimitsEditingTemplate"> 
     <toolkit:DataGrid ItemsSource="{Binding Limits}" ...> 
      ... 
     </toolkit:DataGrid> 
</DataTemplate> 

我面临的问题是如何强制列进入编辑模式双击?这是其他列的默认行为,我相信DataGrid一般。按F2启动编辑模式,但使用鼠标双击不会。

如果我将ListView.IsEnabled设置为False,那么双击工作,但然后我有一个禁用的列表视图,看起来不正确,任何风格hack感觉像一个丑陋的kludge。

请注意,我已经尝试过single click editing这并没有伎俩。

任何帮助表示感谢,谢谢!

回答

1

当然,只要我一问,则回答物化:)如果我使用FindVisualParent方法从single click editing trick和电线,截至列表视图中,双击这一切按预期工作:

<DataTemplate x:Key="LimitsTemplate"> 
    <ListView ItemsSource="{Binding Limits}" PreviewMouseDoubleClick="limitsListView_PreviewMouseDoubleClick"> 
    ... 

并在代码背后:

​​
0

我有我的DataGrid非常类似的问题。这是什么导致了我的项目中的问题:我的DataGrid中的ItemsSource被分配一个实现IEnumerable的自定义列表。

我实现了这个列表,以便它为相同索引的不同调用返回不同的对象。就像你第一次调用list [0]返回一个包含名称“WPF”的对象,例如,如果你调用它再次列出[0]它将为您返回一个全新的对象,其中保存值“WPF”。

因此,如果您绑定的集合(限制)是您为其实施IEnumerable和IList接口的自定义集合,那么请检查您的实现。在我的情况下,它是索引运算符IndexOf和Contains。

My Blog

相关问题