質問

次の問題があります。

TreeViewでは、ユーザーがTreeViewItemではなくツリービューをクリックしたときに自分のdeselect() - メソッドを呼び出すことにより、Unselect機能を追加しました。これが私のツリービュー方法です:

public void deselectAll()
{
    TreeViewItem item = SelectedItem as TreeViewItem;
    if (item != null)
    {
        this.Focus();
        item.IsSelected = false;
    }
}

私の問題は、選択してからツリービューイテムを再選択できないことです。ツリービュー自体に焦点を当てることはこの問題を解決するはずだと読んでいますが、そうではありません。また、「Isselected = false」の前または後に「Focus()」を配置するかどうかは関係ありません。

なぜこれが機能していないのかという考えがありますか?どんな考えも感謝しています。

役に立ちましたか?

解決

Item.Isselected = falseを設定した後;ツリービューのために.focus()を呼び出す必要があります。

        <TreeView MouseLeftButtonDown="TreeView_MouseLeftButtonDown">
            <TreeViewItem Header="Employee1">
                <TreeViewItem Header="Jesper"/>
                <TreeViewItem Header="Aaberg"/>
                <TreeViewItem Header="12345"/>
            </TreeViewItem>
            <TreeViewItem Header="Employee2">
                <TreeViewItem Header="Dominik"/>
                <TreeViewItem Header="Paiha"/>
                <TreeViewItem Header="98765"/>
            </TreeViewItem>
        </TreeView>

    private void TreeView_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        var tv = sender as TreeView;

        if (tv != null)
        {
            var item = (TreeViewItem)tv.SelectedItem;
            item.IsSelected = false;
            tv.Focus();
        }
    }

あなたはあなたの問題を解決しないでください()あなたは書きました。 delectall()をどこに呼びますか?

回避策として、Mouseleftdownを使用して、選択どおりにアイテムを設定できます。

PS:回答をAnwserとしてマークすることを忘れないでください。

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