質問

ご挨拶、

wpf datagridtemplatecolumnでは、listViewを使用したセルテンプレートとdatagridを使用したセル付きテンプレートを持っています。

<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.isedabledをfalseに設定すると、ダブルクリックが機能しますが、正しく見えない無効なリストビューがあり、どんなスタイルのハックもugいクラッジのように感じられます。

試したことに注意してください シングルクリック編集 それはトリックをしませんでした。

助けてくれてありがとう、ありがとう!

役に立ちましたか?

解決

もちろん、私がそう尋ねるとすぐに、答えは実現します:) シングルクリック編集トリック そして、それをリストに配線するビュービューは、予想どおりに機能するすべての動作をダブルクリックします:

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

そして背後のコードで:

static T FindVisualParent<T>(UIElement element) where T : UIElement
{
    UIElement parent = element;
    while (parent != null)
    {
        T correctlyTyped = parent as T;
        if (correctlyTyped != null)
        {
            return correctlyTyped;
        }

        parent = System.Windows.Media.VisualTreeHelper.GetParent(parent) as UIElement;
    }
    return null;
}

void limitsListView_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    DataGrid dataGrid = FindVisualParent<DataGrid>(sender as UIElement);
    if (dataGrid != null)
    {
        dataGrid.BeginEdit();
    }
}

他のヒント

Datagridと非常によく似た問題がありました。私のプロジェクトの問題を引き起こしたものは次のとおりです。私のDatagridのItemsSourceには、Ienumerableを実装するカスタムリストが割り当てられています。

このリストを実装して、同じインデックスの異なる呼び出しに対して異なるオブジェクトを返すように実装しました。リストを呼び出した場合[0]最初に「WPF」という名前を保持するオブジェクトを返すときのように[0]。 0]値「WPF」を保持する完全に新しいオブジェクトが返されます。

したがって、拘束力のあるコレクション(制限)がINUMERABLEとILISTインターフェイスを実装したカスタムコレクションである場合は、実装を確認してください。私の場合、それはインデックス演算子であり、IndexOFと含まれていました。

私のブログ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top