我自己的用户控件包括几个按钮等。
我使用此代码将该UC带入屏幕。
<AppUI:XXXX x:Name="ucStaticBtns" HorizontalAlignment="Left" Margin="484,0,0,0" VerticalAlignment="Top" Width="68" />
我已将两个属性(如Property1和Property2)添加到XXXX用户控件。并用
更改了我的代码<AppUI:XXXX x:Name="ucStaticBtns" HorizontalAlignment="Left" Margin="484,0,0,0" VerticalAlignment="Top" Width="68" Property1="False" Property2="False"/>
当我将这2个参数添加到XAML页面时,系统会抛出一个例外,例如&#34;会员&#39; Property1&#39;无法识别或无法访问&#34;
这是我的UC代码。
public partial class XXXX : UserControl
{
public event EventHandler CloseClicked;
public event EventHandler MinimizeClicked;
//public bool ShowMinimize { get; set; }
public static DependencyProperty Property1Property;
public static DependencyProperty Property2Property;
public XXXX()
{
InitializeComponent();
}
static XXXX()
{
Property1Property = DependencyProperty.Register("Property1", typeof(bool), typeof(XXXX));
Property2Property = DependencyProperty.Register("Property2", typeof(bool), typeof(XXXX));
}
public bool Property1
{
get { return (bool)base.GetValue(Property1Property); }
set { base.SetValue(Property1Property, value); }
}
public bool Property2
{
get { return (bool)base.GetValue(Property2Property); }
set { base.SetValue(Property2Property, value); }
}
}
你可以帮我这么做吗?
非常感谢你!
答案 0 :(得分:32)
您可以将此声明用于DependencyProperties:
public bool Property1
{
get { return ( bool ) GetValue( Property1Property ); }
set { SetValue( Property1Property, value ); }
}
// Using a DependencyProperty as the backing store for Property1.
// This enables animation, styling, binding, etc...
public static readonly DependencyProperty Property1Property
= DependencyProperty.Register(
"Property1",
typeof( bool ),
typeof( XXXX ),
new PropertyMetadata( false )
);
如果您键入“propdp”然后 Tab Tab ,则可以在Visual Studio中找到此代码段。您需要填充DependencyProperty的类型,DependencyProperty的名称,包含它的类以及该DependencyProperty的默认值(在我的示例中,我将false
作为默认值)。
答案 1 :(得分:1)
您可能没有正确宣布DependencyProperty
。您可以在MSDN的Dependency Properties Overview页面中找到有关如何创建DependencyProperty
的完整详细信息,但简而言之,它们看起来像这样(取自链接页面):
public static readonly DependencyProperty IsSpinningProperty =
DependencyProperty.Register(
"IsSpinning", typeof(Boolean),
...
);
public bool IsSpinning
{
get { return (bool)GetValue(IsSpinningProperty); }
set { SetValue(IsSpinningProperty, value); }
}
您可以在MSDN上的DependencyProperty Class页面找到更多帮助。