使用依赖项属性和样式触发器时,...不是DependencyProperty - c#

在我的UserControl中:

    public ODIF.DeviceChannel Channel
    {
        get { return (ODIF.DeviceChannel)GetValue(ChannelDP); }
        set { SetValue(ChannelDP, value); }
    }
    public static readonly DependencyProperty ChannelDP = DependencyProperty.Register("ChannelProperty", typeof(ODIF.DeviceChannel), typeof(ChannelBox), new PropertyMetadata(new ODIF.DeviceChannel()));

然后,当尝试在XAML中使用我的控件并使用datatriggers绑定到Channel时:

<local:ChannelBox VerticalAlignment="Top" HorizontalAlignment="Left" Width="200">
    <local:ChannelBox.Resources>
        <local:TypeOfConverter x:Key="TypeOfConverter"/>
    </local:ChannelBox.Resources>
    <local:ChannelBox.Style>
        <Style TargetType="{x:Type local:ChannelBox}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding mappingConnector, Converter={StaticResource TypeOfConverter}}" Value="{x:Type ODIF:MappingConnector}">
                    <Setter Property="Channel" Value="{Binding mappingConnector.plugin}" />
                </DataTrigger>
                <DataTrigger Binding="{Binding mappingConnector, Converter={StaticResource TypeOfConverter}}" Value="{x:Type ODIF:InitialMappingConnector}">
                    <Setter Property="Channel" Value="{Binding mappingConnector.SourceChannel}" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </local:ChannelBox.Style>
</local:ChannelBox>

在XAML中引发以下错误:

属性“ Channel”不是DependencyProperty。用于
标记,非附加属性必须在目标类型上公开
具有可访问的实例属性“通道”。对于附件
属性,声明类型必须提供静态的“ GetChannel”和
“设置频道”
方法。

但是与错误让我相信的错误相反(我以某种方式设置了错误的DP),以下似乎可以正常工作:

<local:ChannelBox VerticalAlignment="Top" HorizontalAlignment="Left" Width="200" Channel="{Binding mappingConnector.plugin}">

意味着仅在DataTrigger中将其用作Setter属性时,DP似乎才出现问题。

参考方案

尝试将静态属性命名为ChannelProperty而不是ChannelDP

jQuery不起作用 - php

我正在使用带有ajax的jquery。有时,给出错误$未定义。这是我的代码:<script language="javascript" type="text/javascript"> var base_path="<? echo $this->baseUrl().'/…

如何以编程方式扩展Jquery Slider Panel? - c#

我有用于登录的JQuery Silder面板|注册选项。供参考,我已包含此滑块Jquery Login | Register Slider Panel的演示实际的问题是,当位于“文字”控件中的“登录”部分或“注册新帐户”部分中有值时,如何以编程方式扩展此滑块。为了理解这个问题,我把我的设计代码。 <asp:Panel ID="Panel_Lo…

Div单击与单选按钮相同吗? - php

有没有一种方法可以使div上的click事件与表单环境中的单选按钮相同?我只希望下面的div提交值,单选按钮很丑代码输出如下:<input id="radio-2011-06-08" value="2011-06-08" type="radio" name="radio_date&#…

无法解析Json响应 - php

我正在尝试解析一个包含产品类别的JSON文件,然后解析这些类别中的产品,并在div中显示它们。我的问题:虽然我可以获取类别,但我不知道如何索取产品(并将它们显示在类别下)。我的剧本:<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> …

<T>如何在这里处理String和Integer - java

我不明白T如何使用Integer和String。如此处显示功能中所示,T同时处理整数和字符串。该代码如何工作?class firstBase { <T> void display(T give_num, T give_String) { System.out.println("The given number is = " +…