我是 WPF 和 C# 的新手,我尝试实现以下功能,但在多次尝试后失败了。谁能帮我吗?
我有一个图像控件:
<Image Grid.Row="1" x:Name="ImageEditor" Stretch="Fill" StretchDirection="Both"/>
我想将此图像控件的源绑定到另一个类的静态属性(ImageHandler
)
class ImageHandler
{
public static BitmapImage ImageToDisplay { get; set; }
public ImageHandler(){}
.... //other codes
}
所以每当我在做某事时ImageHandler
类,并更新ImageToDisplay
属性,我的图像控件将显示新图像。
我尝试了几种方法,但没有一个达到这个目标。下面显示了我失败的尝试之一。
<Window.Resources>
<local:ImageHandler x:Key="ImageHandler"></local:ImageHandler>
</Window.Resources>
<Image Grid.Row="1" x:Name="ImageEditor" Stretch="Fill" StretchDirection="Both"
Source="{Binding Source={StaticResource ResourceKey=ImageHandler},
Path=ImageToDisplay,Mode=TwoWay}">
</Image>
你必须实施INotifyPropertyChanged
in ImageHandler
对于依赖属性:
class ImageHandler : INotifyPropertyChanged
{
private BitmapImage imageToDisplay;
public BitmapImage ImageToDisplay
{
get { return imageToDisplay; }
set
{
if (imageToDisplay != value)
{
imageToDisplay = value;
OnPropertyChanged("ImageToDisplay");
}
}
}
public ImageHandler() { }
// .... Other codes
#region INotifyPropertyChanged implementation
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
}
但是,为了实现它,我必须删除static
属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)