在实例化 C# 对象之前验证 WPF 文本框中的数据

本文关键字:文本 数据 WPF 验证 实例化 对象 | 更新日期: 2023-09-27 18:37:25

我有一个带有 ListBox 的 WPF 浏览器应用程序,其中包含有关 Bicycle 类的许多对象的信息。该应用程序的下半部分包含许多文本框,用户可以在其中输入有关新自行车的信息。我的目标是使用验证规则(我已经使用的规则)来显示验证错误,如果用户未在字段中输入可接受的值,并且在所有字段通过验证测试之前不允许提交数据。我的问题是,如果数据未绑定到实例化的 Bicycle 对象,我不确定如何验证数据。我是否应该在 Bicycle 类中创建一个接受零参数并将 TextBox 值绑定到此实例的构造函数?或者有没有办法将验证规则绑定到类的属性而不创建该类的实例?来源是什么?

编辑:提交后,具有用户文本框输入的 Bicycle 对象将存储在填充列表框的 ObservableCollection 中。如果我使用 Bicycle 类的一个实例来绑定数据,我不确定如何从文本框中获取数据以将多个(唯一)自行车添加到 ObservableCollection。

编辑:我将文本框绑定到与集合分开的自行车对象,并将其中的值传递到一个新的自行车对象中,当用户按下提交按钮时,该对象可以添加到集合中。我无法弄清楚如何复制 Bicycle 对象,而不仅仅是将原始对象作为引用传递,但将值发送到新 Bicycle 对象的构造函数中可能会避免此类问题。

在实例化 C# 对象之前验证 WPF 文本框中的数据

在代码隐藏中,创建 Bicycle 的实例。 在代码后面有一个返回该 Bicycle 实例的公共属性。 然后将所有文本框绑定到自行车上的属性。 即:Bike.TireSize,或Bicycle.Color,或其他什么。 然后,您可以在用户输入完数据后验证 Bicycle 对象。 如果它有效,则您的自行车已经建成,您可以将其发送到需要存放它的任何位置。