2010-08-17 28 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

相關問題