Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.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# GridViewColumnHeader上的相对资源绑定不起作用_C#_Wpf_Tooltip_Contextmenu - Fatal编程技术网

C# GridViewColumnHeader上的相对资源绑定不起作用

C# GridViewColumnHeader上的相对资源绑定不起作用,c#,wpf,tooltip,contextmenu,C#,Wpf,Tooltip,Contextmenu,我有一个列表视图,如下所示。工具提示显示良好,但上下文菜单不绑定。我有类似大众的参考资料 窗口标记中的xmlns:vw=“clr命名空间:WpfModelViewDemoApplication.Views”。 谢谢你的帮助 <ListView x:Name="lstView" Grid.Row="2" BorderBrush="White" ItemsSource="{Binding Path=Students}" HorizontalAlignment="Stretch">

我有一个列表视图,如下所示。工具提示显示良好,但上下文菜单不绑定。我有类似大众的参考资料 窗口标记中的
xmlns:vw=“clr命名空间:WpfModelViewDemoApplication.Views”
。 谢谢你的帮助

<ListView x:Name="lstView" Grid.Row="2" BorderBrush="White" ItemsSource="{Binding Path=Students}" HorizontalAlignment="Stretch">
    <ListView.View>
        <GridView>
            <GridViewColumn DisplayMemberBinding="{Binding Path=Name}">
                <GridViewColumnHeader Content="Name" Style="{StaticResource GridViewHeaderStyle}" 
                                      MouseDown="GridViewColumnHeader_MouseDown" MouseUp="GridViewColumnHeader_MouseDown"
                                      Tag="{Binding DataContext, RelativeSource={RelativeSource AncestorType={x:Type vw:MainView}}}">
                    <GridViewColumnHeader.ContextMenu>
                        <ContextMenu Name="DisplayColumns" DataContext="{Binding Path=PlacementTarget, RelativeSource={x:Static RelativeSource.Self}}">
                            <MenuItem Header="Time Added" IsCheckable="True" IsChecked="True"/>
                            <MenuItem Header="{Binding Tag.Comments}" IsCheckable="True" IsChecked="True"/>
                        </ContextMenu>
                    </GridViewColumnHeader.ContextMenu>
                </GridViewColumnHeader>
            </GridViewColumn>
            <GridViewColumn Header="Score" HeaderContainerStyle="{StaticResource GridViewHeaderStyle}" DisplayMemberBinding="{Binding Path=Score}" />
            <GridViewColumn Header="TimeAdded" HeaderContainerStyle="{StaticResource GridViewHeaderStyle}">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <Button Content="{Binding Path=TimeAdded}" Tag="{Binding DataContext, RelativeSource={RelativeSource AncestorType={x:Type vw:MainView}}}">
                            <Button.ToolTip>
                                <ToolTip DataContext="{Binding Path=PlacementTarget, RelativeSource={x:Static RelativeSource.Self}}">
                                    <TextBlock Text="{Binding Tag.Comments}"/>
                                </ToolTip>
                            </Button.ToolTip>
                        </Button>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView >
    UPDATE: Found the answer if anyone needs it

    <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:c="clr-namespace:WpfModelViewDemoApplication.Commands"
    xmlns:vw="clr-namespace:WpfModelViewDemoApplication.Views"
    xmlns:vm="clr-namespace:WpfModelViewDemoApplication.ViewModels"
    x:Class="WpfModelViewDemoApplication.Views.MainView"
    mc:Ignorable="d"
    d:DataContext="{DynamicResource MainViewModel}"
    x:Name="MainWindow"
    FontFamily="Verdana"
    Title="WPF MVVM Tutorial">
<Window.Resources>
    <vm:MainViewModel x:Key="MainViewModel"/>
    <DataTemplate x:Key="ResourceItemTemplate">
        <GridViewColumnHeader Content="Name"  Tag="{Binding DataContext, ElementName=MainWindow}">
            <GridViewColumnHeader.ContextMenu>
                <ContextMenu s>
                    <MenuItem Header="Time Added" IsCheckable="True" IsChecked="{Binding PlacementTarget.Tag.IsTimeAddedSelected,RelativeSource={RelativeSource AncestorType=ContextMenu}}"/>
                    <MenuItem Header="Comment" IsCheckable="True" IsChecked="{Binding PlacementTarget.Tag.IsCommentSelected,RelativeSource={RelativeSource AncestorType=ContextMenu}}"/>
                </ContextMenu>
            </GridViewColumnHeader.ContextMenu>
        </GridViewColumnHeader>
    </DataTemplate>
    </Window.Resources>

      <ListView x:Name="lstView" Grid.Row="2" BorderBrush="White" ItemsSource="{Binding Path=Students}" HorizontalAlignment="Stretch">
        <ListView.View>
            <GridView>
                <GridViewColumn HeaderContainerStyle="{StaticResource GridViewHeaderStyle}" HeaderTemplate="{StaticResource ResourceItemTemplate}" DisplayMemberBinding="{Binding Path=Name}"/>
                <GridViewColumn Header="Score" HeaderContainerStyle="{StaticResource GridViewHeaderStyle}" DisplayMemberBinding="{Binding Path=Score}" />
                <GridViewColumn Header="TimeAdded" HeaderContainerStyle="{StaticResource GridViewHeaderStyle}">
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <Button Content="{Binding Path=TimeAdded}" Tag="{Binding DataContext, RelativeSource={RelativeSource AncestorType={x:Type vw:MainView}}}">
                                <Button.ToolTip>
                                    <ToolTip DataContext="{Binding Path=PlacementTarget, RelativeSource={x:Static RelativeSource.Self}}">
                                        <TextBlock Text="{Binding Tag.Comments}"/>
                                    </ToolTip>
                                </Button.ToolTip>
                            </Button>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
            </GridView>
        </ListView.View>
    </ListView >

更新:如果有人需要,可以找到答案

找到了答案,以防有人需要。
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:c="clr-namespace:WpfModelViewDemoApplication.Commands"
xmlns:vw="clr-namespace:WpfModelViewDemoApplication.Views"
xmlns:vm="clr-namespace:WpfModelViewDemoApplication.ViewModels"
x:Class="WpfModelViewDemoApplication.Views.MainView"
mc:Ignorable="d"
d:DataContext="{DynamicResource MainViewModel}"
x:Name="MainWindow"
FontFamily="Verdana"
Title="WPF MVVM Tutorial">
<Window.Resources>
<vm:MainViewModel x:Key="MainViewModel"/>
<DataTemplate x:Key="ResourceItemTemplate">
    <GridViewColumnHeader Content="Name"  Tag="{Binding DataContext, ElementName=MainWindow}">
        <GridViewColumnHeader.ContextMenu>
            <ContextMenu s>
                <MenuItem Header="Time Added" IsCheckable="True" IsChecked="{Binding PlacementTarget.Tag.IsTimeAddedSelected,RelativeSource={RelativeSource AncestorType=ContextMenu}}"/>
                <MenuItem Header="Comment" IsCheckable="True" IsChecked="{Binding PlacementTarget.Tag.IsCommentSelected,RelativeSource={RelativeSource AncestorType=ContextMenu}}"/>
            </ContextMenu>
        </GridViewColumnHeader.ContextMenu>
    </GridViewColumnHeader>
</DataTemplate>
</Window.Resources>

  <ListView x:Name="lstView" Grid.Row="2" BorderBrush="White" ItemsSource="{Binding Path=Students}" HorizontalAlignment="Stretch">
    <ListView.View>
        <GridView>
            <GridViewColumn HeaderContainerStyle="{StaticResource GridViewHeaderStyle}" HeaderTemplate="{StaticResource ResourceItemTemplate}" DisplayMemberBinding="{Binding Path=Name}"/>
            <GridViewColumn Header="Score" HeaderContainerStyle="{StaticResource GridViewHeaderStyle}" DisplayMemberBinding="{Binding Path=Score}" />
            <GridViewColumn Header="TimeAdded" HeaderContainerStyle="{StaticResource GridViewHeaderStyle}">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <Button Content="{Binding Path=TimeAdded}" Tag="{Binding DataContext, RelativeSource={RelativeSource AncestorType={x:Type vw:MainView}}}">
                            <Button.ToolTip>
                                <ToolTip DataContext="{Binding Path=PlacementTarget, RelativeSource={x:Static RelativeSource.Self}}">
                                    <TextBlock Text="{Binding Tag.Comments}"/>
                                </ToolTip>
                            </Button.ToolTip>
                        </Button>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView >