Je joue avec WPF et la liaison de données et je m'interroge sur ce qui suit. J'ai défini quelques PropertyGroupDescriptions, mais maintenant je me demande comment lire le PropertyName d'un IValueConverter. Est-ce possible?WPF - Obtenir PropertyName dans IValueConverter
Répondre
Vous ne pouvez pas. Le IValueConverter interface n'a aucune méthode qui prend la propriété en cours de conversion.
Il aurait été agréable d'avoir l'instance PropertyInfo ou PropertyDescriptor transmis aux méthodes Convert et ConvertBack, mais les concepteurs ne trouvez pas nécessaire. La seule solution consiste à définir l'implémentation IValueConverter dans le code, puis dans la construction de l'implémentation, vous pouvez passer la propriété à laquelle l'implémentation de l'interface IValueConverter est attachée.
Je fais juste référence au convertisseur de la propertygroupdescription – Oxymoron
qui ne fonctionne pas comme id veulent pourriez-vous élaborer plus sur votre solution? – Oxymoron
@Oxymoron : Vous devrez le faire par le biais du code et utiliser les propriétés de la classe qui implémente IValueConverter pour indiquer la propriété sur laquelle vous utilisez le convertisseur de valeur. – casperOne
Il existe toujours un moyen peu onéreux de transmettre le nom via le ConverterParameter de la liaison, bien que ce ne soit pas vraiment une manière "propre" de le faire.
Peut-être que je devrais élaborer un peu plus. Je les groupes suivants dans mon XAML:
<CollectionViewSource x:Key="cvsTasks" Source="{StaticResource tasks}" Filter="CollectionViewSource_Filter" >
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="ProjectName" />
<PropertyGroupDescription PropertyName="TaskName" />
<PropertyGroupDescription PropertyName="Complete" />
</CollectionViewSource.GroupDescriptions>
et
<TextBlock FontWeight="Bold" Text="{Binding Path=Name}"/>
Maintenant, je veux un convertisseur à valled sur Nom, ce qui est bien, mais je ne veux que cela fonctionne réellement sur la propriété Achevée. Quelle serait la meilleure façon de faire cela?
je me retrouve avec le code fugly comme:
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value != null)
{
if (value.GetType().Equals(typeof(Boolean)))
{
return (bool)value ? "Complete" : "Active";
}
if (value.GetType().Equals(typeof(String)))
{
return value as string;
}
}
return null;
}
Semble, mal.
- 1. WPF Ivalueconverter valeurs vides
- 2. WPF: One-way IValueConverter
- 3. Différences entre page ["propertyName"] et page.property ["propertyName"] dans EPiServer?
- 4. Différence entre {Binding PropertyName} et {Binding Path = PropertyName}
- 5. WPF IValueConverter - convertir plusieurs valeurs en une seule valeur
- 6. Simple WPF IValueConverter et DataTrigger ne fonctionnent pas ensemble
- 7. get_PropertyName()/set_PropertyName() vs PropertyName?
- 8. IValueCOnverter ne fonctionne pas
- 9. Liaison PropertyName de CollectionViewSource SortDescription dans Xaml
- 10. Silverlight Update/Trigger IValueConverter dans ListBox DataTemplate dans un DataGrid
- 11. Que devez-vous utiliser IValueConverter for?
- 12. Mise à jour IValueConverter par le code
- 13. WPF: Liaison de contrôle - Déclencheur IValueConverter à partir du code C#
- 14. Obtenir FullPath dans WPF treeview?
- 15. CultureInfo sur une implémentation de IValueConverter
- 16. Comment transmettre des données dans un IValueConverter en XAML?
- 17. IValueConverter ne fonctionne pas dans le design de mélange
- 18. en utilisant IValueConverter avec DataContext actuel en liaison bidirectionnelle
- 19. WPF: Comment obtenir Binding.Converter
- 20. Obtenez le Propertyname de posséder le type C#
- 21. LabelFor htmlhelper MVC2: Comment un propertyName par vide
- 22. Obtenir l'objet par son UID dans WPF
- 23. Comment faire pour obtenir ComboBox.SelectedText dans WPF
- 24. comment obtenir le double-clic dans WPF
- 25. Obtenir la liaison DynamicResource dans WPF
- 26. RegisterAttached String PropertyName provoquant AttachedProperty à ne pas déclencher
- 27. Exception: type 'IValueConverter' n'a pas une classe TypeConverter publique
- 28. Obtention d'une référence à ViewModel à partir d'un IValueConverter
- 29. Une exception dans Json.NET: Token PropertyName dans l'état "Démarrer" entraînerait un objet JavaScript invalide
- 30. Treeview Obtenir parentNode xaml wpf
Quelle est votre utilisation? Que transmettez-vous au convertisseur? –
Il est utilisé dans un DataGrid pour le regroupement. Je veux ajuster les en-têtes en fonction de sa propriété – Oxymoron
qui ne fonctionne pas comme je l'espérais, tant pis :( – Oxymoron