【发布时间】:2014-01-26 21:05:27
【问题描述】:
我创建了一个简单的 Silverlight 用户控件并定义了一个公共属性 AllowMultiple。
public bool AllowMultiple { get; set; }
现在,我在 XAML 中设置这个公共属性如下:
<Controls1:PeopleChooser Name="SinglePeopleChooser" AllowMultiple="False" Width="Auto" d:LayoutOverrides="Height"/>
<Controls1:PeopleChooser Name="MultiplePeopleChooser" AllowMultiple="True" Width="Auto" d:LayoutOverrides="Height"/>
我想知道,我能得到这个公共财产的价值的最佳事件是什么。我试图在构造函数中获取这个值,并试图在我的用户控件中隐藏/显示一些控件,但它不起作用。
public PeopleChooser()
{
InitializeComponent();
if (AllowMultiple)
{
UsersListBox.Visibility = System.Windows.Visibility.Visible;
UserTextBox.Visibility = System.Windows.Visibility.Collapsed;
ResolveButton.Visibility = Visibility.Collapsed;
}
else
{
UsersListBox.Visibility = System.Windows.Visibility.Collapsed;
UserTextBox.Visibility = System.Windows.Visibility.Visible;
ResolveButton.Visibility = Visibility.Visible;
}
}
可能是因为在构造函数初始化期间,该公共属性的值尚未由框架分配给对象。
【问题讨论】:
-
我认为它必须是依赖属性。
标签: c# wpf silverlight silverlight-5.0