我想扩展一个WPF按钮来存储一些额外的数据,与当前的"Tag"属性类似.附属物是前进的方向吗?我想要存储的数据将是一个URL链接字符串,例如我希望能够执行以下操作:
<Button Tag="BBC World News" URLLink="http://www.bbc.co.uk"/>
Run Code Online (Sandbox Code Playgroud)
谁能帮我理解如何扩展按钮?
非常感谢
松鸦
您可以使用附属物:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样声明你的按钮:
<Button Tag="BBC World News" ButtonBehavior.UrlLink="http://www.bbc.co.uk" Click="btnArticleView"/>
Run Code Online (Sandbox Code Playgroud)
而你点击处理程序将如下所示:
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
}
Run Code Online (Sandbox Code Playgroud)