也许是愚蠢的问题,但我不知道了。。。
我有这样的ViewModel类:
public class MainWindowsViewModel : INotifyPropertyChanged
{
private ImageSource _img;
public ImageSource StatusImage
{
get { return _img; }
set
{
_img = value;
NotifyPropertyChanged();
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName]String propertyName = "")
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
XAML中的绑定如下:
<Window.DataContext>
<VM:MainWindowsViewModel />
</Window.DataContext>
<Image x:Name="gui_image_status" HorizontalAlignment="Left" Height="26" Margin="144,10,0,0" VerticalAlignment="Top" Width="29" Source="{Binding Path=StatusImage}" />
我将ImageSource的内容设置为:
MainWindowsViewModel _view = new MainWindowsViewModel();
var yourImage = new BitmapImage(new Uri(String.Format("Sources/{0}.png", "red"), UriKind.Relative));
_view.StatusImage = yourImage;
但它不起作用。我认为问题在于
NotifyPropertyChanged
,因为我试图在
set
和
get
.
Get
在开始时触发了几次,之后
设置
也用正确的ImageSource触发,但之后
收到
不再触发。好像从未发生过任何设定。
这真的很简单,我也做过很多次类似的事情……我不知道为什么这次不行。