我正在尝试创建一个自定义图像控件,因为我必须根据某些事件来操纵它的源,而且我将拥有大量此类控件。为此,我决定从 Image 继承我的类(“nfImage”),并且我希望有一个 DP(它实际上会反映事件),我可以将它绑定到视图模型。我正在做:
class nfImage : Image
{
public static readonly DependencyProperty TagValueProperty =
DependencyProperty.Register("TagValue", typeof(int), typeof(nfImage), new UIPropertyMetadata(0));
public int TagValue
{
get { return (int)GetValue(TagValueProperty); }
set
{
SetValue(TagValueProperty, value);
if (this.Source != null)
{
string uri = (this.Source.ToString()).Substring(0, (this.Source.ToString()).Length - 5) + value.ToString() + ".gif";
ImageBehavior.SetAnimatedSource(this, new BitmapImage(new Uri(uri, UriKind.Absolute)));
}
}
}
}
问题是它不起作用。如果我从后面的代码中设置 TagValue 的值,源代码会更改,但如果我从 xaml(通过 dp)设置它,则不会发生任何事情,绑定也不起作用。我如何做到这一点?