在两个带绑定的文本框中显示对象属性值及其默认值?

Hui Liu-MSFT 46,951 信誉分 Microsoft 供应商
2024-03-13T08:31:43.9533333+00:00

我目前有一个类对象,如下所示。我在绑定列表中有这个集合,并且使用绑定源将其绑定到文本框控件。我有两个文本框,一个用于将默认值显示为只读,另一个用于输入数量值的文本框。如果没有手动输入的数量,则将使用默认数量计算成本。

我想知道是否可以只有一个属性并在一个文本框或标签中显示其默认属性,并从另一个文本框中获取值?如果清除了手动字段,那么它应该使用默认值再次计算吗?无论如何要绑定还是简化?

Public Class Test

Private QuantityValue as Integer = 1

Public Property Quantity() as Integer
        Get
            Return QuantityValue
        End Get
        Set(ByVal Value As Integer)
            QuantityValue = Value
        End Set
End property 

Public Property UserQuantity() as Integer
        Get
            Return UserQuantityValue
        End Get
        Set(ByVal Value As Integer)
            UserQuantityValue = Value
        End Set
End property 

Public Readonly Property Cost() as Double
        Get
        if UserQuantity>0 then   
                    Return UserQuantity*Price
        Else
            Return Quantity*price
        End if
        End Get

End property

End Class


Note:此问题总结整理于: Showing object property value and its default value in two textboxes with binding?

VB
VB
Microsoft 开发的一种面向对象的编程语言,其在 .NET Framework 上实现。 以前称为 Visual Basic .NET。
78 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Jiale Xue - MSFT 40,746 信誉分 Microsoft 供应商
    2024-03-14T08:12:42.9866667+00:00

    如果没有手动输入的数量,则将使用默认数量计算成本。

    我根据你的描述做了一个测试,你可以参考下面的代码。

    Public Class Form1  
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click  
            TextBox2.DataBindings.Clear()  
            Dim testLst As BindingList(Of Test) = New BindingList(Of Test)()  
            Dim result As Integer  
      
            If Integer.TryParse(TextBox1.Text, result) Then  
                testLst.Add(New Test() With {  
                    .Quantity = result  
                })  
            Else  
                testLst.Add(New Test())  
            End If  
      
            TextBox2.DataBindings.Add("Text", testLst(0), "Quantity")  
        End Sub  
    End Class  
    Public Class Test  
      
        Private QuantityValue As Integer = 1  
      
        Public Property Quantity() As Integer  
            Get  
                Return QuantityValue  
            End Get  
            Set(ByVal Value As Integer)  
                QuantityValue = Value  
            End Set  
        End Property  
      
    End Class  
    

    我的测试结果。 50992-gif.gif


    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助