WPF数据网格的错误?当一列切换的知名度与形象headercontent [英] wpf datagrid bug? when toggle visibility on a column with an image as headercontent
问题描述
我有以下问题。
如果我用一个形象的一个DataGrid的头,我得到一个错误,而切换的知名度。
< DataGridTextColumn标题={的StaticResource图片链接}的IsReadOnly =真>
错误:北DEM angegebenen元handelt ES SICH bereits嗯达斯logische untergeordnete元EINES anderen元素
唯一的解决方法我发现迄今是创建一个的ControlTemplate与我imageheadercolumns具体形象的foreach。
这是DataGrid的行为一个错误?
编辑:错误翻译由谷歌:指定的元素已经是另一个元素的逻辑子
。编辑:样品
<窗口x:类=WpfApplication1.MainWindow
的xmlns =http://schemas.microsoft.com/winfx/2006/xaml/$p$psentation
的xmlns:X =http://schemas.microsoft.com/winfx/2006/xaml
标题=主窗口高度=350宽度=525>
< Window.Resources>
<的ResourceDictionary>
< ResourceDictionary.MergedDictionaries>
< ResourceDictionary中源=Dictionary1.xaml/>
< /ResourceDictionary.MergedDictionaries>
< / ResourceDictionary中>
< /Window.Resources>
<电网>
<按钮内容=切换点击=Button_Click高度=20WIDTH =40的HorizontalAlignment =左/>
< DataGrid的宽度=200>
< DataGrid.Columns>
< DataGridTextColumn X:名称=colImage标题={的StaticResource AnyImage}>
< / DataGridTextColumn>
< /DataGrid.Columns>
< /数据网格>
< /网格>
< /窗>
ResourceDictionary中:
< ResourceDictionary中的xmlns =http://schemas.microsoft.com/winfx/2006/xaml/$p$psentation
的xmlns:X =http://schemas.microsoft.com/winfx/2006/xaml>
<图像X:关键=AnyImage来源=Home.pngX:共享=假/>
< / ResourceDictionary中>
Button.Click:
私人无效Button_Click(对象发件人,RoutedEventArgs E)
{
this.colImage.Visibility = this.colImage.Visibility == Visibility.Visible
? Visibility.Collapsed
:Visibility.Visible;
}
**编辑:删除了previous答案这是不相关的 **
你需要把图像中列的HeaderTemplate中。
工作样本code
<窗口x:类=WpfApplication1.MainWindow
的xmlns =http://schemas.microsoft.com/winfx/2006/xaml/$p$psentation
的xmlns:X =http://schemas.microsoft.com/winfx/2006/xaml
XMLNS:地方=CLR的命名空间:WpfApplication1
标题=主窗口高度=350宽度=525>
< Window.Resources>
<的BitmapImage X:关键=图片链接UriSource =test.bmp/>
< /Window.Resources>
<电网>
< Grid.RowDefinitions>
< RowDefinition高度=30/>
< RowDefinition身高=*/>
< /Grid.RowDefinitions>
<按钮内容=按钮NAME =Button1的WIDTH =75点击=的button1_Click/>
&所述;电网Grid.Row =1>
<数据网格高度=200VerticalAlignment =热门>
< DataGrid.Columns>
< DataGridTextColumn X:名称=firstHeader的IsReadOnly =真>
< DataGridTextColumn.HeaderTemplate>
<的DataTemplate>
<图像源={的StaticResource图片链接}/>
< / DataTemplate中>
< /DataGridTextColumn.HeaderTemplate>
< / DataGridTextColumn>
< /DataGrid.Columns>
< /数据网格>
< /网格>
< /网格>
< /窗>
私人无效的button1_Click(对象发件人,RoutedEventArgs E)
{
firstHeader.Visibility = firstHeader.Visibility == Visibility.Visible? Visibility.Collapsed:Visibility.Visible;
}
i have the following problem.
if i use an image for a datagrid header i get an error while toggling visibility.
<DataGridTextColumn Header="{StaticResource Image_Link}" IsReadOnly="True">
Error: Bei dem angegebenen Element handelt es sich bereits um das logische untergeordnete Element eines anderen Elements.
the only workaround i found so far is to create a ControlTemplate with the specific image foreach of my imageheadercolumns.
is this datagrid behaviour a bug?
EDIT: Error translated by google: The specified element is already the logical child of another element.
EDIT: Sample
<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:
<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>
Button.Click:
private void Button_Click(object sender, RoutedEventArgs e)
{
this.colImage.Visibility = this.colImage.Visibility == Visibility.Visible
? Visibility.Collapsed
: Visibility.Visible;
}
**EDIT: Deleted the previous answer which wasn't relevant**
You will need to put the image in headertemplate of column.
working sample code
<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数据网格的错误?当一列切换的知名度与形象headercontent的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!