C# · 12月 31, 2021

c# – 附加属性为XAML元素

我有一类附加属性: public static class XamlProps{ #region Attached Properties private static readonly DependencyProperty FooProperty = DependencyProperty.RegisterAttached( “Foo”,typeof(string),typeof(XamlProps),null); public static void SetFoo(DependencyObject obj,string action) { obj.SetValue(FooProperty,action); }}

我在XAML中使用这些属性:

<Border me:XamlProps.Foo=”Foo to the Bar”>

但现在我想在这个属性中有一个更大的值,所以我想用它作为一个元素:

<Border> <me:XamlProps.Foo>Foo to the Bar</me:XamlProps.Foo></Border>

但现在Silverlight不再调用SetFoo()了.我该如何让这个工作?

在Windows Phone 7上,如果重要.

解决方法 如果您使用该语法,则需要指定类型: <Border> <me:XamlProps.Foo> <sys:String>Foo to the Bar</sys:String> </me:XamlProps.Foo></Border>

sys命名空间映射到System的位置.你还需要定义GetFoo …

可能是一个复制粘贴打字错误,但在注册

typeof(XamlActions)

应该

typeof(XamlProps)