0

Voici ce que je veux:WPF: option "Aucun" lorsque Databinding avec DataGridComboBoxColumn

  • Il y a une colonne combo-box lié à la propriété ApplicationKey de ClassA.
  • ClassA.ApplicationKey est un Nullable<Int32>
  • La zone de liste déroulante est remplie avec ApplicationTokens à partir d'une fonction statique tous.
  • Un ApplicationToken a une propriété ApplicationName et ApplicationKey
  • Quand un élément est sélectionné dans la liste déroulante, la propriété ClassA.ApplicationKey est fixé à la ApplicationToken.ApplicationKey sur l'élément sélectionné.
  • L'option "Aucun" est actuellement représentée par un Null. Cela peut être changé.

Code actuel

<DataGridComboBoxColumn 
    Header="Application" 
    SelectedValueBinding="{Binding ApplicationKey}" 
    SelectedValuePath="ApplicationKey" 
    DisplayMemberPath="ApplicationName" 
    ItemsSource="{Binding Source={x:Static app:ApplicationLookup.GetAllOrNone}}"/> 

Actuellement, les travaux contraignants, sauf que je ne peux pas sélectionner l'option "None" dans la liste. La liste déroulante le montre, mais ne fait rien lorsque j'essaie de le sélectionner avec la souris.

Quelle est la manière standard d'en proposer aucune dans une boîte combinée?

Répondre

0

Je ne sais pas si cela est le moyen standard de faire les choses, mais il semble fonctionner:

  • Tous les ApplicationTokens héritent de jeton
  • Token a une propriété « PrimaryKey ».
  • Il y a une classe NullToken défini comme tel:

    Classe publique NullToken Hérite Token

    Private ReadOnly m_DisplayValue As String 
    
    Private Sub New(ByVal displayValue As String) 
        m_DisplayValue = displayValue 
    End Sub 
    
    Public Overrides Function ToString() As String 
        Return m_DisplayValue 
    End Function 
    
    Public Overrides ReadOnly Property PrimaryKey As Integer? 
        Get 
         Return Nothing 
        End Get 
    End Property 
    
    Public Shared ReadOnly BlankToken As New NullToken("") 
    Public Shared ReadOnly NoneToken As New NullToken("None") 
    Public Shared ReadOnly AllToken As New NullToken("All") 
    

    End Class

  • ApplicationLookup.GetAllOrNone retourne une collection d'Token avec le NullToken correct comme premier article.

0

Ce que je l'ai fait quand je besoin d'un Aucun ou (Sélectionner tout) type de geste utilisateur pour un comboBox est de créer une valeur statique pour le jeton et juste se lier à une collection qui comprend le jeton dans la première position . compte alors ce dernier dans tout ce qui est la manipulation de la variation de la valeur:

public string MidfixText { 
     get { return _midfixText; } 
     set { 
      ... 
      _filter(!_midfixText.Equals(Strings.ProjectSelection_MidfixChoice_SelectAll)); 
     } 
    } 

HTH,
Berryl