wpf数据网格错误?当在具有图像作为标题内容的列上切换可见性时

标签 wpf datagrid .net-4.0

我有以下问题。

如果我将图像用于数据网格标题,则在切换可见性时会出错。

<DataGridTextColumn Header="{StaticResource Image_Link}" IsReadOnly="True">

错误:Bei dem angegebenen Element handelt es sich bereits um das logische untergeordnete Element eines anderen Elements。

到目前为止,我发现的唯一解决方法是为我的 imageheadercolumns 的每个特定图像创建一个 ControlTemplate。

这个数据网格行为是一个错误吗?

编辑:谷歌翻译的错误:指定的元素已经是另一个元素的逻辑子元素。

编辑:样本
<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="Dictionary1.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
    </Window.Resources>
    <Grid> 
    <Button Content="Toggle" Click="Button_Click" Height="20" Width="40" HorizontalAlignment="Left"/>
    <DataGrid Width="200">
        <DataGrid.Columns>
        <DataGridTextColumn x:Name="colImage" Header="{StaticResource AnyImage}">

        </DataGridTextColumn>
        </DataGrid.Columns>
    </DataGrid>
    </Grid>
</Window>

资源字典:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Image x:Key="AnyImage" Source="Home.png" x:Shared="false"/>
</ResourceDictionary>

按钮。单击:
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        this.colImage.Visibility = this.colImage.Visibility == Visibility.Visible
                                       ? Visibility.Collapsed
                                       : Visibility.Visible;
    }

最佳答案

**编辑:删除了之前不相关的答案 **

您需要将图像放在列的 headertemplate 中。
工作示例代码

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WpfApplication1"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <BitmapImage x:Key="Image_Link" UriSource="test.bmp" />
    </Window.Resources>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="30"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Button Content="Button" Name="button1" Width="75" Click="button1_Click" />
        <Grid Grid.Row="1">
            <DataGrid Height="200" VerticalAlignment="Top">
                <DataGrid.Columns>
                    <DataGridTextColumn x:Name="firstHeader" IsReadOnly="True">
                        <DataGridTextColumn.HeaderTemplate>
                            <DataTemplate>
                                <Image Source="{StaticResource Image_Link}"  />
                            </DataTemplate>
                        </DataGridTextColumn.HeaderTemplate>
                    </DataGridTextColumn>
                </DataGrid.Columns>
            </DataGrid>
        </Grid>
    </Grid>
</Window>
private void button1_Click(object sender, RoutedEventArgs e)
{
        firstHeader.Visibility = firstHeader.Visibility == Visibility.Visible ? Visibility.Collapsed : Visibility.Visible;
}

关于wpf数据网格错误?当在具有图像作为标题内容的列上切换可见性时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5578109/

相关文章:

wpf 数据网格错误/错误

c# - WCF 存在并且部分工作但对于某些调用返回 "no endpoint listening - (404) Not Found."

c# - System.Runtime.Caching 中是否存在某种 CacheDependency?

c# - 将异步调用变成同步调用

c# - 从 MainPage.xaml.cs 文件获取字符串变量的值到 Windows Phone 中的 MainPage.xaml 文件

wpf - 将旋转的 ArcSegment 增长为完整的圆

c# - Telerik RadGridView 集合自定义编辑器

wpf - 如何在构建时使 .dll 和其他文件远离更深文件夹中的 .exe 文件?

WPF MvvM DataGrid 变量 Columns 通过列的 IList

c# - 如何获取 dataGrid1_BeginningEdit 事件中数据网格单元格的值?