代码之家  ›  专栏  ›  技术社区  ›  GrowSing

WPF绑定图像源

  •  1
  • GrowSing  · 技术社区  · 9 年前

    也许是愚蠢的问题,但我不知道了。。。

    我有这样的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触发,但之后 收到 不再触发。好像从未发生过任何设定。

    这真的很简单,我也做过很多次类似的事情……我不知道为什么这次不行。

    2 回复  |  直到 9 年前