gpt4 book ai didi

UWP:DataGrid、MenuFlyout 右键单击

转载 作者:行者123 更新时间:2023-12-05 00:39:53 25 4
gpt4 key购买 nike

问题:右键单击一行时,我正在尝试在 DataGrid 上创建一个菜单。

目标:右键单击一行时是否可以在 DataGrid 上创建菜单;我可以在单元格上创建一个吗?

<controls:DataGridTemplateColumn Header="OrderId">
<controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<Grid.ContextFlyout>
<MenuFlyout>
<MenuFlyoutItem Text="Copy" Icon="Copy" Click="MenuFlyoutItem_Copy" />
<MenuFlyoutSeparator />
<MenuFlyoutItem Text="Delete" Icon="Delete" Click="MenuFlyoutItem_Delete" />
</MenuFlyout>
</Grid.ContextFlyout>
<TextBlock Text="{Binding OrderId}" />
</Grid>
</DataTemplate>
</controls:DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumn>

private void MenuFlyoutItem_Copy(object sender, RoutedEventArgs e)
{
ObservableCollection<SampleOrder> dataGrid = DataGrid.ItemsSource as ObservableCollection<SampleOrder>;

MenuFlyoutItem mfi = sender as MenuFlyoutItem;
SampleOrder seleted = mfi.DataContext as SampleOrder;

var copiedItem = (SampleOrder)seleted.Clone();

dataGrid.Add(copiedItem);
}

private void MenuFlyoutItem_Delete(object sender, RoutedEventArgs e)
{
ObservableCollection<SampleOrder> dataGrid = DataGrid.ItemsSource as ObservableCollection<SampleOrder>;

MenuFlyoutItem mfi = sender as MenuFlyoutItem;
SampleOrder seleted = mfi.DataContext as SampleOrder;

dataGrid.Remove(seleted);
}

最佳答案

除非我遗漏了什么,否则这比 Nico 的回答要容易得多。您需要做的就是像这样设置 RowStyle 属性:

<controls:DataGrid.RowStyle>
<Style TargetType="controls:DataGridRow">
<Setter Property="controls:DataGridRow.ContextFlyout">
<Setter.Value>
<MenuFlyout>
<MenuFlyoutItem x:Name="MyMenuItem"
Click="MyMenuItem_Click"
Text="Do Things" />
</MenuFlyout>
</Setter.Value>
</Setter>
</Style>
</controls:DataGrid.RowStyle>

然后在你的处理程序中:

private void MyMenuItem_Click(object sender, RoutedEventArgs e)
{
var item = (sender as FrameworkElement).DataContext as MyModel;
// Do things with your item.
}

关于UWP:DataGrid、MenuFlyout 右键单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54769413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com