我的页面中有一个用户控件,它有一个布尔属性我试图将它绑定到一个切换按钮。但是,我收到一个我不明白的错误。
按钮:
<AppBarToggleButton x:Name="btnFoo"
Icon="Edit"
Checked="btnFoo_Checked"
Unchecked="btnFoo_Checked"/>
该页面中的用户控件:
<local:ucMyControl FooBool="{Binding ElementName=btnFoo, Path=IsChecked}" />
用户控制的公共财产:
public bool FooBool { get; set; }
初始化控件时出现此错误,
类型&#39; Windows.UI.Xaml.Markup.XamlParseException&#39;的例外情况 发生在PhoneApp.exe中但未在用户代码中处理
WinRT信息:无法分配到属性&#39;%0&#39;。 [行:121 位置:42]
其他信息:与此错误代码相关联的文本可以 找不到
为什么不设置属性?我必须使用值转换器吗?
答案 0 :(得分:1)
为了将值绑定到属性,它必须是DependencyProperty
。
public bool FooBool
{
get { return (bool)GetValue(FooBoolProperty); }
set { SetValue(FooBoolProperty, value); }
}
public static readonly DependencyProperty FooBoolProperty =
DependencyProperty.Register("FooBool", typeof(bool), typeof(ucMyControl), new PropertyMetadata(false));