我遇到了使用Silverlight构建的用户控件的问题。问题是在用户控件的类中我添加了一个属性public Guid ApplicationId
,并且在页面上我想要绑定到某个值。当我尝试这样做时,我得到“在'ParameterEditor'类型中找不到属性'ApplicationId',其中ParameterEditor
是我的用户控件。
问题的一些代码。在用户控件中:
public ParameterEditor()
{
InitializeComponent();
SetParametersForEdit();
}
public Guid ApplicationId
{
get { return (Guid)GetValue(ApplicationGUID); }
set
{
if (ApplicationId == value) return;
SetValue(ApplicationGUID, value);
}
}
在页面的XAML中我想显示这个控件我有这个:
<vbView:ParameterEditor x:Name="paramConfig" Grid.Row="3" Grid.Column="2"
DataContext="{Binding SelectedRoute}"
ApplicationId="{Binding ApplicationId}"
/>
ApplicationId
位于页面的.cs文件中。问题是我用其他控件做了这件事并且它工作正常,老实说我不知道为什么会发生这种情况。
DependencyProperty
定义:
public static readonly DependencyProperty ApplicationGUID = DependencyProperty.Register(
"Application GUID", typeof(Guid), typeof(ParameterEditor),
new PropertyMetadata((source, _) => ((ParameterEditor)source).SetInitialGuid()));
private void SetInitialGuid()
{
ApplicationId = Guid.Empty;
}