Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 条件上下文菜单触发器_C#_Wpf - Fatal编程技术网

C# 条件上下文菜单触发器

C# 条件上下文菜单触发器,c#,wpf,C#,Wpf,我现在有两个按钮。一个按钮是showAppoints(),另一个是ShowTask()。单击其中一个按钮时,该按钮的FontWeight将变为粗体。一次只能加粗一个。我使用它作为指示器来显示正在显示的内容 然后,这些值将显示在列表框中。我试图设置一个条件,当ShowTask fontweight为粗体时,它将显示任务对应的contextMneu,并为约会显示一组不同的ContextMenu <ListBox ItemsSource="{Binding FilteredEventsColle

我现在有两个按钮。一个按钮是showAppoints(),另一个是ShowTask()。单击其中一个按钮时,该按钮的FontWeight将变为粗体。一次只能加粗一个。我使用它作为指示器来显示正在显示的内容

然后,这些值将显示在列表框中。我试图设置一个条件,当ShowTask fontweight为粗体时,它将显示任务对应的contextMneu,并为约会显示一组不同的ContextMenu

<ListBox ItemsSource="{Binding FilteredEventsCollection}"
         <Style TargetType="{x:Type ListBox}">
             <Style.Triggers>
                  <DataTrigger Binding="{Binding Path=AppointmentBold}" Value="Bold">
                       <Setter Property="ContextMenu" Value="{StaticResource Menu1}"></Setter>
                 </DataTrigger>
            </Style.Triggers>
        </Style>
        <ListBox.ItemTemplate>
            <DataTemplate>
                 <StackPanel cal:Message.Attach="[Event MouseDoubleClick] = [Action Open()]">
                     <TextBlock Text="{Binding Date, StringFormat=g}" Foreground="Black" FontWeight="Bold" FontFamily="Segoe UI"/>
                     <TextBlock Text="{Binding Title}" />
                     <TextBlock Text="{Binding Company}" Foreground="Black"/>
                </StackPanel>
            </DataTemplate>
      </ListBox.ItemTemplate>
</ListBox>

您看到的异常是什么?Menu1是在哪里定义的?很抱歉,我忘了重命名Menu1,我会将其更新为正确的对应名称。我在代码里改了,忘了在这里改了。这里的错误对我来说没有任何意义。看起来在设置itemssource时引发了异常,这会让我相信有一个您没有看到的InnerException。可能是它不喜欢StaticResource,您可以尝试将其更改为DynamicSource以快速测试。如果做不到这一点,我会尝试删除xaml的一些部分,以找出原因。当我删除样式时,效果很好。所以我知道原因就在那里。我将研究DynamicResource,或者您可以将ContextMenu声明移动到ListBox.Resources中,并将样式放在其中
<ContextMenu x:Key="TaskMenu">
    <MenuItem>Open This Task</MenuItem>
</ContextMenu>
<ContextMenu x:Key="AppointmentMenu">
    <MenuItem>Open This Appointment</MenuItem>
</ContextMenu>