2010-07-21 6 views
-3

Je n'aime pas l'incapacité de WPF à interpréter le texte de manière insensible à la casse.Comment rendre WPF insensible à la casse?

Existe-t-il des outils (c'est-à-dire des plugins VS) qui prendront mon code VB .NET et géreront les problèmes de sensibilité à la casse pour moi?

Modifier: Maintenant avec des exemples.

Entrée:

<Dockpanel DockPanel.Dock="Bottom"> 
     <Label Content="(c) blahblah" HorizontalAlignment="Left" Name="Label2" VerticalAlignment="Bottom" Opacity=".75" Background="White" DockPanel.Dock="bottom"/> 
    </DockPanel> 

Sortie:

<DockPanel DockPanel.Dock="Bottom"> 
    <Label Content="(c) blahblah" HorizontalAlignment="Left" Name="Label2" VerticalAlignment="Bottom" Opacity=".75" Background="White" DockPanel.Dock="Bottom"/> 
</DockPanel> 
+0

Pouvez-vous fournir des exemples spécifiques? Plus précisément, que voulez-vous dire en prenant votre code VS.NET et en gérant la sensibilité à la casse? –

+1

-1, mal rédigé sans exemples. –

+0

Personnellement, je n'aime pas l'incapacité de VB.NET à interpréter le texte d'une manière sensible à la casse ... BTW, dans votre exemple l'entrée et la sortie sont les mêmes. –

Répondre

1

Je ne pense pas que WPF est le problème ici.

Si vous devez valider des données et supprimer le cas du problème, convertissez toutes vos chaînes en Upper ou Lower avant de les comparer.

Si vous avez besoin de changer la façon dont fonctionne un TextBox dans WPF, créez votre propre TextBox hérité et passer outre la propriété Text ou modifier les setters dans vos propriétés prédestinée à modifier toute valeur qu'il reçoit, comme

public string Name 
{ 
    get { return this._name; } 
    set 
    { 
    this._name = value.ToUpper(); 
    OnPropertyChanged("Name"); 
    } 
} 

Sans plus d'informations sur le problème, je ne sais pas quoi d'autre à suggérer.

5

C'est un peu comme essayer d'utiliser C# sans; ou XAML sans crochets. La sensibilité à la casse est une partie intrinsèque du langage XAML et du système de liaison WPF. Si votre code VB pose des problèmes lorsque vous l'utilisez avec WPF, activez l'option Strict on et corrigez le boîtier incohérent dans votre code.

+0

Juste parce que c'est une partie de la langue ne veut pas dire que ça ne vaut pas la peine d'essayer de réparer. –

+0

C'est vrai. Utilisez le correctif pour VB en activant Option Strict. –

0

Je ne suis pas exactement sûr de ce que vous essayez d'atteindre, mais j'ai rencontré des problèmes de sensibilité à la casse lors de la vérification des noms d'utilisateur. Notre standard est SimpsonHJ, mais certains utilisateurs se connecteraient à leurs machines comme simpsonhj ou SIMPSONHJ. J'ai donc fait une variable qui change le nom d'utilisateur trouvé à toutes les majuscules

private string un = Environment.UserName.ToUpper();