我有一个应该进行幻灯片放映的Image控件。 以下是我用来实现此目的的绑定:
Binding mapBinding = new Binding();
mapBinding.Source = slideView;
mapBinding.Path = new PropertyPath("ImageDrawing");
sliderImage.SetBinding(System.Windows.Controls.Image.SourceProperty, mapBinding);
班级SlideImage
public class SlideImage : INotifyPropertyChanged {
public ImageSource ImageDrawing{get;set;}
public void ChangeImage(){
// Load another image
// Update ImageDrawing
// Fire property changed event
}
public event PropertyChangedEventHandler PropertyChanged;
}
我在网上发现了很多使用UpdateSourceTrigger
监听数据源更改的示例。唯一的问题是Image
控件没有该属性。
如何将我的sliderImage
控件与SlideImage.PropertyChanged
上的更新联系起来?
答案 0 :(得分:2)
如果您在调用PropertyChanged
的设置者时实际调用ImageDrawing
,它可能会自动更新。
您没有在您提供的代码中为PropertyChanged
媒体资格ImageDrawing
。试试这个:
private ImageSource imageDrawing;
public ImageSource ImageDrawing
{
get { return imageDrawing; }
set
{
imageDrawing = value;
RaisePropertyChanged("ImageDrawing");
}
}
private void RaisePropertyChanged(string propertyName)
{
if(PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}