作成日: 2020/03/17 最終更新日: 2020/08/26
文書種別
不具合
状況
修正済み
詳細
C1TreeViewのSelectionModeプロパティにMultiple、あるいはExtendedを指定して複数選択を許可している場合、マウスクリック(Extendedの場合は[Ctrl+クリック])によりノードを選択し、そのノードを同じ操作でクリックしても、ノードの選択状態を解除できません。
回避方法
この問題は4.5.20202.716で修正されました。
※修正版を適用しない場合の回避方法は以下の通りです。
C1TreeViewのPreviewMouseDownイベントを使用し、以下のコードを実装します。
◆サンプルコード
----------------------------------------------------
private void Tree_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
var node = Tree.GetNode(e.GetPosition(Tree));
if (node != null)
{
switch (Tree.SelectionMode)
{
case C1.WPF.C1SelectionMode.Multiple:
if (node.IsSelected)
{
node.IsSelected = false;
e.Handled = true;
}
break;
case C1.WPF.C1SelectionMode.Extended:
if (node.IsSelected && (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)))
{
node.IsSelected = false;
e.Handled = true;
}
break;
}
}
}
----------------------------------------------------
※修正版を適用しない場合の回避方法は以下の通りです。
C1TreeViewのPreviewMouseDownイベントを使用し、以下のコードを実装します。
◆サンプルコード
----------------------------------------------------
private void Tree_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
var node = Tree.GetNode(e.GetPosition(Tree));
if (node != null)
{
switch (Tree.SelectionMode)
{
case C1.WPF.C1SelectionMode.Multiple:
if (node.IsSelected)
{
node.IsSelected = false;
e.Handled = true;
}
break;
case C1.WPF.C1SelectionMode.Extended:
if (node.IsSelected && (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)))
{
node.IsSelected = false;
e.Handled = true;
}
break;
}
}
}
----------------------------------------------------
旧文書番号
85025