WP7 -如何从ViewModel绑定位图

本文关键字:ViewModel 绑定 位图 WP7 | 更新日期: 2023-09-27 18:16:32

我在视图模型中有位图。现在我想从视图模型绑定到XAML。

 public static String _imgQRCode;
        public String imgQRCode
        {
            get { return _imgQRCode; }
            set { this.RaiseAndSetIfChanged(x => x.imgQRCode, value); }
        }

地图:-

imgQRCode = GenerateQRCode(phoneNumber).ToString();

GenerateORCode: -

private static WriteableBitmap GenerateQRCode(string phoneNumber)
        {
            BarcodeWriter _writer = new BarcodeWriter();
            _writer.Renderer = new ZXing.Rendering.WriteableBitmapRenderer()
            {
                Foreground = System.Windows.Media.Color.FromArgb(255, 0, 0, 255),
            };
            _writer.Format = BarcodeFormat.QR_CODE;
            _writer.Options.Height = 400;
            _writer.Options.Width = 400;
            _writer.Options.Margin = 1;
            var barcodeImage = _writer.Write("tel:" + phoneNumber);
            return barcodeImage;
        }

这里我不能绑定图像。请让我从viewModel绑定图像的任何想法。

WP7 -如何从ViewModel绑定位图

imgQRCode的数据类型由string改为WriteableBitmap

不能将图像绑定到字符串。只要标签的datacontext是正确的,你就应该为位图定义一个属性,例如

WriteableBitmap QRCode { get; set; } // Implement INotifyPropertyChanged the way you do it

然后在其他属性设置器中设置QRCode,如下所示:

public String imgQRCode
        {
            get { return _imgQRCode; }
            set 
            { 
              this.RaiseAndSetIfChanged(x => x.imgQRCode, value); 
              this.QRCode = GenerateQRCode(value);
            }
        }

那么在XAML中你可以使用<Image Source="{Binding Path=QRCode}" />