wpf - 单击按钮以填充收集的最新点的表单字段
问题描述
我有一个表单,在保存/添加下一个点时,单击 SaveAddNext 会出现一个弹出窗口,询问用户是否愿意根据旧字段填充新字段。这完美地工作。
但是,我无法将其实现为按钮形式。如果用户决定退出表单、重新输入、添加新点并想要自动填充,我也需要这种情况。
工作 SaveAddNext 代码的位:
Public Sub New(ByVal Record As Feature,
ByVal previousRecord As Till_NonTillStation,
ByVal SurficialType As enumTillTypes)
MyBase.New(Record, Constants.COL_TILL_CREATED_BY,
Constants.COL_TILL_CREATION_DATE, Constants.COL_TILL_EDITED_BY,
Constants.COL_TILL_EDIT_DATE,
DirectCast(previousRecord.Geometry, Esri.ArcGISRuntime.Geometry.MapPoint))
If MessageBox.Show("Autopopulate fields from last point collected?", "Record Autopopulation", MessageBoxButton.YesNo) = vbYes Then
Me.EXPOSURE_TYPE = previousRecord.EXPOSURE_TYPE
Me.EXPOSURE_HEIGHT = previousRecord.EXPOSURE_HEIGHT
Me.UNIT_THICKNESS = previousRecord.UNIT_THICKNESS
Me.UNIT_TYPE = previousRecord.UNIT_TYPE
Me.TILL_FACIES = previousRecord.TILL_FACIES
Me.PERCENT_CLAY = previousRecord.PERCENT_CLAY
Me.FIRST_LITHOFACIES_TYPE = previousRecord.FIRST_LITHOFACIES_TYPE
Me.CONSISTENCY = previousRecord.CONSISTENCY
Me.COLOUR = previousRecord.COLOUR
Me.CLAST_PROVIDENCE = previousRecord.CLAST_PROVIDENCE
Me.CLAST_ROUNDNESS = previousRecord.CLAST_ROUNDNESS
Me.NOTES = previousRecord.NOTES
End If
到目前为止的按钮代码。我打电话给 Sub New,它会弹出窗口,但不读取任何数据。我不确定如何引用数据:
Private Sub btnAutopopulate_Click(sender As Object, e As RoutedEventArgs) Handles btnAutopopulate.Click
previousRecord = New Till_NonTillStation(Constants.TillNonTillFeatureTable.CreateFeature,
_feature, enumTillTypes.Non_Till)
End Sub
解决方案
在 VB.NET 中,Sub new 是对象的构造 函数。
当您单击btnAutopopulate时,您正在创建一个 的新
实例 Till_NonTillStation
,因此存储在其他实例中的任何先前数据都不可用。
不要使用(调用)Sub New(构造函数)。创建不同的函数或方法来设置以前的数据。
这是我根据您最后的评论提出的建议:
1:创建全局变量来存储你的数据:例如使用
Public Shared EXPOSURE_TYPE as string 这与使用 Me.EXPOSURE_TYPE 不同,后者取决于表单的实例。
以上是简单的方法,但是许多程序员不赞成使用全局变量,因此更好的方法是创建一个类(在表单之外)并将数据存储在其中。
推荐阅读
- flutter - 日期倒数计时器
- ruby - 更改嵌入式签名的语言环境
- javascript - 如何禁用 react-admin 的自动刷新功能
- r - 根据不同列中的其他 id 生成新的 id 列
- azure - 使用 Azure 逻辑应用从 Salesforce 获取记录
- amazon-web-services - AWS 命令行查询 EC2 描述可用的网络接口
- javascript - 在移动设备上,我希望在单击 ID 时关闭导航栏
- java - JAVA:如何存储登录用户
- python - 如何使用 python-docx 使文本变为粗体、蓝色、16 号和特定字体?
- node.js - Nock 标头 - 错误:Nock:与请求不匹配