1
我想在wpf應用程序中綁定圖像。我正在使用vs2010。WPF圖像綁定和INotifyPropertyChanged,與圖像顯示問題
我粘貼下面的代碼,並解釋我做了什麼,什麼起作用,什麼不起作用。
XAML代碼:
<Image Name="newImage" ImageFailed="newImage_ImageFailed" HorizontalAlignment="Right" Width="auto" Height="auto" Margin="5" Source="{Binding imgSource}">
C#代碼:下面
public MainWindow()
{
InitializeComponent();
arraytoImage atim = new arraytoImage();
newImage.DataContext = atim;
}
代碼是在不同的命名空間,其中arraytoImage
類被實現。這個類需要一個cuda數組,創建一個位圖,然後使用memorystream將其轉換爲bitmapimage。目前,我正在爲所有像素設置隨機顏色,以查看該綁定是否有效。但事實並非如此。下面我粘貼了一個顯示圖片的代碼。
我相信bitmapimage是正確創建的。我認爲這個問題是不正確的綁定。
class arraytoImage : INotifyPropertyChanged
{
// displays images (focused files)
private BitmapImage bitmapImage = new BitmapImage();
private BitmapImage testim = new BitmapImage();
public BitmapImage arraytoImageCon(cuFloatComplex[] dataIn, int wid, int ht)
{
//code that generates bitmapimage
}
public BitmapImage imgSource
{
get { return testim1; }
set
{
if (testim1 != value)
{
testim1 = value;
OnPropertyChanged("imgSource");
}
}
}
#region INotifyPropertyChanged implementation
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
}
編輯:調用arrayToImageCon:
public class ReadRawFiles
{
//Tons of code
public void focusdata()
{
//tons of code
arraytoImage atoi = new arraytoImage();
BitmapImage tmp= atoi.arraytoImageCon(datafft_azi, nazimuth,nrange);
atoi.imgSource=tmp;
}
}
我的問題是,我在做什麼錯。
非常感謝。如果我錯過了一些東西,請詢問更多細節。
Regards
你的代碼有點混亂。爲什麼不直接刪除testim1並返回bitmapImage。你也可以在哪裏調用arrayToImage con?你爲什麼不直接在那裏打電話給這位二傳手,這樣財產得到適當的提升? – dowhilefor
嘗試'test = bitmapImage;'而不是'testim1 = bitmapImage;' –
@dowhile因其雜亂,因爲我處於學習的初始階段。請稍微詳細一點。謝謝 – Naresh