Я работаю над 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#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение