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