WP7 - 如何从ViewModel绑定位图?

时间:2014-08-05 10:58:34

标签: c# windows-phone-7 mvvm

我在View Model中有位图。现在我想从View Model绑定到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中的图像。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

string的数据类型从WriteableBitmap更改为imgQRCode

答案 1 :(得分:0)

您无法将图像绑定到字符串。 只要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}" />