gpt4 book ai didi

c# - WPF 生成的文件无法编译

转载 作者:行者123 更新时间:2023-11-30 16:57:21 25 4
gpt4 key购买 nike

在我的 WPF 应用程序中,我为上下文菜单项(ListBoxItem 的上下文菜单)添加了单击事件处理程序。

当我尝试以下方法时:

            <ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}" BasedOn="{StaticResource {x:Type ListBoxItem}}">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="Remove" Click="RemoveSelectedSchedule"/>
</ContextMenu>
</Setter.Value>
</Setter>
<EventSetter Event="MouseDoubleClick" Handler="ScheduleList_MouseDoubleClick"/>
</Style>
</ListBox.ItemContainerStyle>

并尝试构建,构建失败并显示以下错误消息:

1>C:\Users\Pawel\Source\Repos\academiccalendar\AcademicCalendar.Desktop\obj\Debug\MainWindow.g.cs(113,14,113,15): error CS1513: } expected 1>C:\Users\Pawel\Source\Repos\academiccalendar\AcademicCalendar.Desktop\obj\Debug\MainWindow.g.cs(123,19,123,20): error CS1514: { expected 1>C:\Users\Pawel\Source\Repos\academiccalendar\AcademicCalendar.Desktop\obj\Debug\MainWindow.g.cs(125,9,125,10): error CS1525: Invalid expression term '}' 1>C:\Users\Pawel\Source\Repos\academiccalendar\AcademicCalendar.Desktop\obj\Debug\MainWindow.g.cs(125,10,125,11): error CS1002: ; expected

但是,如果为 Context MenuItem 删除设置 Click 事件处理程序,代码将正确编译和运行。

EDIt 事件处理程序当前为空。

void RemoveSelectedSchedule(object sender, RoutedEventArgs e)
{

}

最佳答案

这很奇怪......

玩了一段时间后编译

  1. 删除代码

            <Setter Property="ContextMenu">
    <Setter.Value>
    <ContextMenu>
    <MenuItem Header="Remove" Click="RemoveSelectedSchedule"/>
    </ContextMenu>
    </Setter.Value>
    </Setter>
  2. 编译 - 失败

  3. 添加第二个事件 setter

  4. 编译失败

  5. 加回代码

            <Setter Property="ContextMenu">
    <Setter.Value>
    <ContextMenu>
    <MenuItem Header="Remove" Click="RemoveSelectedSchedule"/>
    </ContextMenu>
    </Setter.Value>
    </Setter>
  6. 再次编译 - 编译!!!

WPF 编译器有问题...

编辑 1 个更好的答案...

如果将 ContextMenu 移动到资源部分

<ContextMenu x:Key="ListBoxItemContextMenu">
<MenuItem Header="View" Name="MenuItemView" Click="ContextClicked"/>
</ContextMenu>

并在似乎有效的 Setter 中访问它

<Style TargetType="{x:Type ListBoxItem}" BasedOn="{StaticResource {x:Type ListBoxItem}}">
<Setter Property="ContextMenu" Value="{StaticResource ListBoxItemContextMenu}">
</Setter>
<EventSetter Event="MouseDown" Handler="EventSetter_OnHandler1"></EventSetter>
<EventSetter Event="MouseDoubleClick" Handler="EventSetter_OnHandler2"></EventSetter>
</Style>

关于c# - WPF 生成的文件无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26747183/

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