我有一类附加属性:
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)
关于c# - 作为 XAML 元素的附加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5267088/