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類中啓動一個方法。
在此先感謝您的幫助!
你有MVVM在項目實施是一個嵌入一個? – Jimmy
無論如何,我不認爲你可以訂閱整個視圖,你必須訂閱個別的屬性。 – Jimmy
沒有MVVM。只需打開一個WPF窗口,然後以編程方式將嵌入式webview添加到它的網格中。其他的一切都是從C#與JavaScript交談處理的,反之亦然。 – nathansizemore