C# 通过XAML访问/设置codebehind的自定义文本属性

C# 通过XAML访问/设置codebehind的自定义文本属性,c#,wpf,xaml,C#,Wpf,Xaml,有一些麻烦让我的头周围所有的DP的我已经重新创建了一个非常简单的版本,我的问题,试图和整理什么是问题。唉,我还是被难住了 我有一个自定义的userControl,并试图通过实例化该控件的页面设置textblock的属性。目前,在下面这个版本中,作为一种自我教育的方式,我只是试图从代码隐藏中访问一个属性 我希望设置自定义文本属性等的原因是,我希望页面上有多个具有自定义行为/文本等的控件版本 这是我的密码 public partial class FeedbackCtrl : UserContro

有一些麻烦让我的头周围所有的DP的我已经重新创建了一个非常简单的版本,我的问题,试图和整理什么是问题。唉,我还是被难住了

我有一个自定义的userControl,并试图通过实例化该控件的页面设置textblock的属性。目前,在下面这个版本中,作为一种自我教育的方式,我只是试图从代码隐藏中访问一个属性

我希望设置自定义文本属性等的原因是,我希望页面上有多个具有自定义行为/文本等的控件版本

这是我的密码

 public partial class FeedbackCtrl : UserControl
{
    public bool IsFlagSet
    {
        get { return (bool)GetValue(IsFlagSetProperty); }
        set { SetValue(IsFlagSetProperty, value); }
    }
    public static readonly DependencyProperty IsFlagSetProperty =
        DependencyProperty.Register("IsFlagSet", typeof(bool), typeof(FeedbackCtrl), new PropertyMetadata(false));

    public FeedbackCtrl()
    {
        InitializeComponent();
        this.DataContext = this;
    }
}
还有我的XAML

<UserControl x:Class="Pipeline_General.Custom_Controls.FeedbackCtrl" x:Name="ThisCtrl"
         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" 
         d:DesignHeight="300" d:DesignWidth="300">
<Grid>
    <Expander HorizontalAlignment="Stretch" >
        <Expander.Header Name="Header">
            <Grid HorizontalAlignment="Stretch" Width="NaN">
                <Border Background="Transparent" HorizontalAlignment="Stretch" BorderBrush="gray" BorderThickness="0,0,0,1"
                        Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Expander}}, Path=ActualWidth}">
                    <TextBlock Foreground="#FFFF72D2" Text="{Binding Path=IsFlagSet}">
                    </TextBlock>
                </Border>
            </Grid>
        </Expander.Header>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="30" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
            <ScrollViewer Grid.Row="1">
                <StackPanel Orientation="Vertical" VerticalAlignment="Top" Margin="5"/>
            </ScrollViewer>
        </Grid>
    </Expander>
</Grid>

我不明白你的问题。上面的代码行得通,还是真的行?好啊维尔德。。它只是没有向我展示任何东西。。。。我不应该在designer中看到它吗?这就是我所期待的。抱歉,如果我问了一个愚蠢的问题,您的目标是在WindowView中设置IsFlagSet?比如:好吧,如果它在运行时工作就足够了。。但我真正想要的是在设计器中设置,我只是使用上面的示例来尝试找出DP。原因是我需要两个用户控件的实例。。有两个文本块,我试图在不创建两个不同控件的情况下高效地执行此操作。。