Отключить выбор строки при щелчке правой кнопкойC#

Место общения программистов C#
Anonymous
 Отключить выбор строки при щелчке правой кнопкой

Сообщение Anonymous »

Я работаю над DataGrid, который позволяет пользователю выбирать несколько строк. но когда пользователь нажимает на заголовок строки, выбор теряется. br />
Я пытался сделать это через поведение < /p>

public class DataGridRowBehavior
{

public static readonly DependencyProperty DisableSelectionOnRightClickProperty = DependencyProperty.RegisterAttached(
"DisableSelectionOnRightClick",
typeof(bool),
typeof(DataGridRowBehavior),
new UIPropertyMetadata(false, OnDisableSelectionOnRightClick));

public static bool GetDisableSelectionOnRightClick(DependencyObject dgRow)
{
return (bool)dgRow.GetValue(DisableSelectionOnRightClickProperty);
}

public static void SetDisableSelectionOnRightClick(DependencyObject dgRow, bool value)
{
dgRow.SetValue(DisableSelectionOnRightClickProperty, value);
}

public static void SetListViewFocus(DependencyObject d, bool use)
{
d.SetValue(DisableSelectionOnRightClickProperty, use);
}

public static void OnDisableSelectionOnRightClick(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
DataGridRowHeader header = d as DataGridRowHeader;
header.MouseRightButtonUp += header_MouseRightButtonUp;
}

static void header_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
var header = sender as DataGridRowHeader;

if (header.IsRowSelected)
{
if (header.ContextMenu != null)
{
header.ContextMenu.IsOpen = true;
}

e.Handled = true;
}
}
}
< /code>

Но этот не работает правильно, так как другие функции правой щелчки также нарушаются. например, контекстное меню. Контекстное меню не позволяет его командам приложения. ряд?

Подробнее здесь: https://stackoverflow.com/questions/235 ... eady-selec

Вернуться в «C#»