WPF Binding Image Source
возможно глупый вопрос, но я больше не знаю ...
У меня есть класс 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
срабатывает несколько раз в начале, потомset
срабатывает также с правильным ImageSource, но после этогоget
не срабатывает больше. Как будто никогда не было обстановки.
Это действительно просто обязательство, что я делал много раз аналогично ... Я не знаю, почему это не работает в этот раз.