如何让我的自定义WPF用户控件绑定到内容属性?

时间:2011-03-30 18:57:45

标签: wpf

我将以下内容作为自定义用户控件:

<UserControl x:Class="TestGUI.TBorder">
<Border Style="{StaticResource brdListBoxItem}">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="35" />
            <RowDefinition Height="5" />
            <RowDefinition />
        </Grid.RowDefinitions>

        <TextBlock Grid.Row="0"
                   Grid.Column="0"
                   Style="{StaticResource tblTitleDataStyle}"
                   Text="{Binding Header, Mode=OneWay}" />

        <Rectangle Grid.Row="1"
                   Grid.Column="0"
                   Margin="5,2"
                   Fill="{StaticResource BlueTextBrush}"
                   Height="1"
                   HorizontalAlignment="Stretch" />

        <ContentPresenter Name="ccpMain"
                        Grid.Row="2"
                        Grid.Column="0"
                        Content="{Binding Content}" />
        <!--<TextBlock Grid.Row="2"
                   Text="TEST HERE" />-->
    </Grid>

</Border>

如果我注释掉“ContentPresenter”,并取消注释“TextBlock”,它会按预期显示。如果我将它设置为set,那么只显示的内容是标签内部的内容。例如:

<local:TBorder Grid.Row="2"
                        Grid.Column="0" Width="300"
                        Header="The Header">
        <TextBlock Text="astnouhe" />
    </local:TBorder>

仅显示“TextBlock”。

有人可以向我解释一下吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您将内容设置为什么?如果您将其设置为问题中的XAML,那么它正在尝试在您的控件中显示文本本身。

您需要在答案中创建另一个使用XAML的控件,并将其设置为用户控件的内容,以便在用户控件旁边显示这些控件。