![](/img/trans.png)
[英]Custom HeaderedContentControl, set header with multibinding
[英]HeaderedContentControl header template not being used
我对WPF还是很陌生,并且正在使用一些旧代码,不确定如何使用HeaderedContentControl Header。 我想放入StackPanel并自定义标题的外观,只是不确定如何做到这一点。
有人可以给我一些下一步的指导吗?
我有这个xaml,从未使用过HeaderTemplate。
<UserControl x:Class="PEC.Admin.WindowsControls.Program.Views.ProgramProductEnrichmentColorsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:commonControls="clr-namespace:ManagerConsole.Common.Controls;assembly=ManagerConsole.Common.Controls"
xmlns:program="clr-namespace:PEC.Admin.ViewModel.Program;assembly=PEC.Admin.ViewModel.Program"
mc:Ignorable="d"
d:DesignWidth="300"
d:DataContext="{d:DesignInstance program:ProgramProductEnrichmentColorsViewModel}">
<commonControls:ExpanderPanel IsExpanded="{Binding Path=IsExpanded,Mode=TwoWay}">
<HeaderedContentControl.HeaderTemplate> <!-- this never gets used... -->
<DataTemplate>
<StackPanel>
<Label Content="{Binding Path=Header}"></Label>
</StackPanel>
</DataTemplate>
</HeaderedContentControl.HeaderTemplate>
<StackPanel HorizontalAlignment="Stretch"
VerticalAlignment="Top"
Width="Auto"
Margin="3"
Background="White">
<TextBlock Text="Source Type:"
Margin="0,5,0,0" />
<TextBox IsReadOnly="True"
IsTabStop="False"
Background="LightGray"
BorderThickness="0"
Text="{Binding Path=SourceTypeName, Mode=OneTime}" />
</StackPanel>
</commonControls:ExpanderPanel>
</UserControl>
HeaderTemplate 已应用。 要验证它-在HeaderTemplate中为Label设置背景。
HeaderTemplate不会显示任何内容,因为绑定不正确。 模板将应用于Header
属性中的数据集,该属性当前为null
值。
因此,请按照下面的示例所示更改代码(我尝试使用Expander,希望它可以用于自定义commonControls:ExpanderPanel):
<Expander IsExpanded="{Binding Path=IsExpanded, Mode=TwoWay}"
Header="{Binding ComplexObject}">
<HeaderedContentControl.HeaderTemplate>
<DataTemplate>
<StackPanel>
<Label Background="Green" Content="{Binding PropertyOfTheObject}"/>
</StackPanel>
</DataTemplate>
</HeaderedContentControl.HeaderTemplate>
</Expander>
标头是一个依赖项属性,可以通过Binding设置。 标头成为HeaderTemplate中绑定的源。 或者它可以是某些常量( Header="Click to expand"
),资源( Header="{StaticResource ExpandTitle}"
)或复杂的内容,例如:
<Expander.Header>
<TextBlock Text="Click to expand"/>
</Expander.Header>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.