2014-02-17 85 views
0

我有一個傳感器類和一個測試類。每個測試對象都有一個傳感器陣列。我的MainWindow類有一個測試對象。傳感器類擴展了INotifyPropertyChanged,並且當某個屬性發生變化時,我設置了一個可以廣播的事件。我的問題是,我不知道如何訂閱MainWindow類中的這些事件。 MainWindow擁有嵌入CefSharp的嵌入式Chromium窗口。我沒有需要更改的UI元素,只需在事件發生時調用函數/方法。訂閱屬性更改的事件

這是我目前很努力,但不斷收到關於該酒店的錯誤是不允許在運算符右側?

傳感器類

//Event for when new data is placed into temp_readings 
public event PropertyChangedEventHandler PropertyChanged; 

//Adds a new reading to the data set 
public void addReading(float reading) 
{ 
    this.temp_readings.Add(reading); 
    OnPropertyChanged(new PropertyChangedEventArgs("new_data_id" + this.id)); 
} 

//Raises an event that new readings have been added 
protected void OnPropertyChanged(PropertyChangedEventArgs e) 
{ 
    PropertyChangedEventHandler handler = PropertyChanged; 
    if (handler != null) 
    { 
     handler(this, e); 
    } 
} 

在主窗口

private void InitializeWebView() 
{ 
    //Disable Caching 
    BrowserSettings settings = new BrowserSettings(); 
    settings.ApplicationCacheDisabled = true; 
    settings.PageCacheDisabled = true; 
    settings.FileAccessFromFileUrlsAllowed = true; 

    //Initialize WebView 
    this.webView = new WebView(index, settings); 

    //View Property Event Handlers 
    this.webView.PropertyChanged += this.webViewPropertyChanged; 

    //Event handlers for new data added to sensors 
    for (int x = 0; x < this.test.sensors.Length; x++) 
    { 
     this.webView.PropertyChanged += this.test.sensors[x].PropertyChanged; 
    } 

    //Load it into the XAML Grid 
    main_grid.Children.Add(webView); 
} 

所有我看到被向上設置這些在WPF側鍵或東西,並在結合數據實施例一類。我想只要在傳感器的數據陣列發生任何變化時就在MainWindow類中啓動一個方法。

在此先感謝您的幫助!

+0

你有MVVM在項目實施是一個嵌入一個? – Jimmy

+0

無論如何,我不認爲你可以訂閱整個視圖,你必須訂閱個別的屬性。 – Jimmy

+0

沒有MVVM。只需打開一個WPF窗口,然後以編程方式將嵌入式webview添加到它的網格中。其他的一切都是從C#與JavaScript交談處理的,反之亦然。 – nathansizemore

回答

0

我想通了。我必須分配傳感器類中要調用的功能。這是我的新代碼

//Event handlers for new data added to sensors 
for (int x = 0; x < this.test.sensors.Length; x++) 
{ 
    this.test.sensors[x].PropertyChanged += handleStuff; 
} 

其中,handleStuff是在主窗口某處類中定義的函數。