簡體   English   中英

如何使是/否組合框返回true / false?

[英]How can I make a Yes/No combobox return true/false?

我是在Visual Studio和C#中創建表單的新手。 但是我制作了一個UI,其中包含一些組合框,其中DropDownStyle是DropDownList。 顯示的項目是Yes和No。但是我需要將其作為布爾值分配給某些對象ai上的屬性,當前需要這樣做:

    if (cmbExample.Text == "Yes")
    {
        ai.isPacketType = true;
    }
    else if (cmbExample.Text == "No")
    {
        ai.isPacketType = false;
    }

我基本上想做這樣的事情(或其他一些班輪):

ai.isPacketType = cmbExample.Text;

如何將文本“是”鏈接到值true,將“否”鏈接到false?

您可以這樣做:

ai.isPacketType = (cmbExample.Text == "Yes");

還是isPacketTypebool?

ai.isPacketType = string.IsNullOrEmpty(cmbExample.Text) ? (bool?)null : cmbExample.Text == "Yes";

如果您要執行此操作,並且正在使用數據綁定,那么本博客文章中介紹了一種簡潔的方法。 基本上,您設置了幾個鍵值對:

private List<KeyValuePair<string, bool>> GenerateYesNo()

{
    List<KeyValuePair<string, bool>> yesNoChoices = new List<KeyValuePair<string,bool>>();

    yesNoChoices.Add(new KeyValuePair<string, bool>("Yes", true));
    yesNoChoices.Add(new KeyValuePair<string, bool>("No", false));    
    return yesNoChoices;
 }

或在VB.Net中:

Private Function GenerateYesNo() As List(Of KeyValuePair(Of String, Boolean))
    Dim yesNoChoices As New List(Of KeyValuePair(Of String, Boolean))

    yesNoChoices.Add(New KeyValuePair(Of String, Boolean)("Yes", True))
    yesNoChoices.Add(New KeyValuePair(Of String, Boolean)("No", False))

    Return yesNoChoices
End Function

並綁定到這對對。 有關詳細信息,請訪問博客鏈接。

ai.isPacketType = (cmbExample.Text == "Yes");

你當然可以這樣寫

ai.isPacketType = cmbExample.Text == "Yes";

理想情況下,您可能想圍繞Boolean創建一個包裝器類/結構。 然后,您可以覆蓋ToString()值以返回Yes或No。

基礎值將保持不變,但是UI將通過使用ComboBox上的ValueMember和DisplayMember屬性顯示不同的值。

通過在數據上添加ViewModel以使其在UI上看起來不錯,而無需使用任何條件代碼直接驅動,可以將其視為MVVM方法。

您可以使用ai.isPacketType = cmbExample.Text == "Yes" (區分大小寫),或ai.isPacketType = string.Compare(cmbExample.Text, "Yes", true) == 0 (不區分大小寫)。

不能使用“ Checked”屬性,該屬性將為true選中,如果未選中則為false:

ai.isPacketType = cmbExample.Checked;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM