1
WPF Windows 응용 프로그램에서 WPF 툴킷의 DataGrid를 사용하고 있습니다. 행 헤더에 행을 선택하는 데 사용되는 확인란 열을 만드는 데이터 형식이 있습니다.DataGrid의 체크 박스 열 머리글 클릭시 팝업 메뉴를 표시하는 방법은 무엇입니까?
체크 박스 열의 머리글 행 (그리드에서 가장 왼쪽 맨 위의 셀)을 클릭하면 그리드의 모든 확인란을 선택하여 모든 행을 선택합니다. XAML
<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:toolkit="http://schemas.microsoft.com/wpf/2008/toolkit" >
<toolkit:DataGrid Name="dataGrid" ItemsSource="{Binding}"
AutoGenerateColumns="True" SelectionMode="Extended" CanResizeRows="False">
<toolkit:DataGrid.RowHeaderTemplate>
<DataTemplate>
<Grid>
<CheckBox IsChecked="{
Binding Path=IsSelected,
Mode=TwoWay,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type toolkit:DataGridRow}}}"
/>
</Grid>
</DataTemplate>
</toolkit:DataGrid.RowHeaderTemplate>
</toolkit:DataGrid>
</Window>
에서
관련 부분은 지금이 클릭을 처리하는 방법을 알고 싶어요. 나는 이것을 처리하고 팝업 메뉴을 대신 보여줄 계획입니다.
어떤 컨트롤의 클릭 이벤트로 연결해야합니까?
답 : 그래서 (예) 같은 이벤트를 처리 할 SelectAllCommand를 사용하여
datagrid.CommandBindings.Add(new CommandBinding(
Microsoft.Windows.Controls.DataGrid.SelectAllCommand,
OnSelectAll, CanExecuteSelectAll));
public void OnSelectAll(object sender, ExecutedRoutedEventArgs e)
{
MessageBox.Show("All Selected");
}
public void CanExecuteSelectAll(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
Console.WriteLine("Can I execute?");
}