我需要弄清楚如何将我的类库中的枚举绑定到我的应用程序中的单选按钮

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我需要弄清楚如何将我的类库中的枚举绑定到我的应用程序中的单选按钮相关的知识,希望对你有一定的参考价值。

我无法弄清楚如何将我的类库中的Enum绑定到我的单选按钮以显示其中一个被检查并从枚举中提取答案我的单选按钮的名称是radCopper,radNickel,radGold,radSilver,radPalladium ,radPlatinum和radZinc。这是我需要在我的类库中使用的Enum

Namespace CoinCollection
`Public Class Coin
Public Enum Metal
            Gold
            Silver
            Platinum
            Copper
            Zinc
            Nickel
            Palladium
        End Enum`
This is the button I need to display the radio button checked when clicked

Private Sub btnInsert_Click(sender As Object, e As EventArgs) Handles btnInsert.Click
Dim Met = [Enum].GetValues(GetType(Coinn.Metal))
        If radCopper.Checked Then
            MessageBox.Show("Copper")
        End If

此按钮还将我的类库中的其他枚举绑定到我当前正在工作的下拉列表

Private Sub btnInsert_Click(sender As Object, e As EventArgs) Handles btnInsert.Click
        Dim Curr = [Enum].GetValues(GetType(Coinn.Currency))
        MessageBox.Show(cboCurrency.SelectedItem, GetType(Coinn.Currency).Name)
答案

RadioButtons没有任何约束力。您只需使用一些代码即可获得适当的值。你可以在事后通过索引这样做,例如

Dim radioButtons = {radGold, radSilver, ...}
Dim checkedIndex = Array.IndexOf(radioButtons, radioButtons.Single(Function(rb) rb.Checked))
Dim metalValue = DirectCast([Enum].GetValues(GetType(Metal)), Metal())(checkedIndex)

或者,您可以在事实之前使用控件的Tag属性,例如

Dim radioButtons = {radGold, radSilver, ...}
Dim metalValues = DirectCast([Enum].GetValues(GetType(Metal)), Metal())

For i = 0 To radioButtons.GetUpperBound(0)
    radioButtons(i).Tag = metalValues(i)
Next

然后,您可以在事实之后从检查的RadioButton中获取适当的值,例如

Dim metalValue = DirectCast(radioButtons.Single(Function(rb) rb.Checked).Tag, Metal)

以上是关于我需要弄清楚如何将我的类库中的枚举绑定到我的应用程序中的单选按钮的主要内容,如果未能解决你的问题,请参考以下文章

使用类库中的视图 [重复]

类库中的 HtmlEncode

在 Xamarin 表单中将 Observable 集合绑定到我的 ListView 时遇到问题

在我的 Web 应用程序引用的类库中访问 wcf 数据服务时出现问题

如何在单独的类库.net core 中使用 DbContext?

如何在 .NET Core 类库中引用 Visual Studio 共享项目