我想扩展一个 WPF 按钮来存储一些额外的数据,与当前的“标签”属性类似。附加属性是前进的方向吗?我要存储的数据将是一个 URL 链接字符串,例如我希望能够执行以下操作:
<Button Tag="BBC World News" URLLink="http://www.bbc.co.uk"/>
谁能帮我理解如何扩展按钮?
非常感谢
杰
最佳答案
您可以使用 attached property :
public class ButtonBehavior
{
public static readonly DependencyProperty UrlLinkProperty =
DependencyProperty.RegisterAttached("UrlLink",
typeof(ButtonBase),
typeof(ButtonBehavior),
new FrameworkPropertyMetadata(null));
public static string GetUrlLink(DependencyObject d)
{
return (string)d.GetValue(UrlLinkProperty);
}
public static void SetUrlLink(DependencyObject d, string value)
{
d.SetValue(UrlLinkProperty, value);
}
}
然后你可以像这样声明你的按钮:
<Button Tag="BBC World News" ButtonBehavior.UrlLink="http://www.bbc.co.uk" Click="btnArticleView"/>
您单击处理程序将如下所示:
protected void btnArticleView(object sender, RoutedEventArgs e)
{
Button rb = sender as Button;
string TheTitle = rb.Tag.ToString();
string TheURL = ButtonBehavior.GetUrlLink(rb);
// Further code here
}
关于wpf - 扩展 WPF 按钮以在新属性中存储数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/565695/