using MembranePoreTester.ViewModels; using System.Windows; using System.Windows.Controls; namespace MembranePoreTester.Views { public partial class PoreDistributionView : UserControl { public PoreDistributionView() { InitializeComponent(); //DataContext = new ViewModels.PoreDistributionViewModel(); // 监听 IsVisible 变化 this.IsVisibleChanged += (s, e) => { if (this.DataContext is ViewModels.PoreDistributionViewModel vm) { vm.IsActive = this.IsVisible; if (!this.IsVisible) { // 离开孔分布界面时,停止自动采集 //vm.StopCollecting(); } } }; this.Loaded += OnLoaded; } private void OnLoaded(object sender, RoutedEventArgs e) { var vm = this.DataContext as PoreDistributionViewModel; if (vm != null) { vm.Record.DataPoints.CollectionChanged += DataPoints_CollectionChanged; } } private void Button_Click(object sender, System.Windows.RoutedEventArgs e) { } private void DataPoints_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add) { // 滚动湿膜表格到底部 ScrollDataGridToEnd(dgWetData); // 滚动干膜表格到底部 ScrollDataGridToEnd(dgDryData); } } private void ScrollDataGridToEnd(DataGrid dataGrid) { if (dataGrid.Items.Count > 0) { dataGrid.ScrollIntoView(dataGrid.Items[dataGrid.Items.Count - 1]); } } } }