0

我正在尝试在我的 WPF 表单中添加动态图像。我添加了这样的图像:

<Image Height="212" HorizontalAlignment="Left" Margin="12,167,0,0" 
   Name="picture_scan" Stretch="Fill" VerticalAlignment="Top" Width="227" 
   Source="{Binding FingerprintSource}" />

源代码导致我的服务类中的以下代码:

public BitmapSource FingerprintSource
{
    get { return fingerprintScan.WpfImageSource; }
}

WpfImageSource一个BitmapSource。正如我所说,图像是动态的。通过我的指纹读取器中的一个事件,调用以下代码:

private void HandleFingerprintObtainedEvent(Fingerprint fingerprint, FingerprintImage fingerprintImage)
{
    Debug.WriteLine("New fingerprint found!");
    fingerprintScan = fingerprintImage;
}

当我运行程序并将手指按在阅读器上时,会发现一个新的指纹图像。该值fingerprintScan正在更改。但问题是,在我将手指放在扫描仪上之前和之后,位图都是空的(白色?)。我究竟做错了什么?除了数据绑定,我还需要做更多事情吗,比如检查事件或其他什么?当数据绑定的来源是 aBitmapSource而不是 a时,这是一个问题BitmapImage吗?

4

1 回答 1

1

没有通知该属性已更改。

具有 de FingerprintSource 属性的类必须实现接口INotifyPropertyChanged。然后,您可以使用属性设置器来引发PropertyChanged事件。否则 WPF 绑定不知道发生了什么变化。

这里有一个很好的起点:WPF/MVVM 快速入门教程

于 2013-02-26T11:24:22.370 回答