Während {Binding Path=CollectionProperty[2]}
funktioniert gut, ich kann es nicht mit einer Enum, das heißt {Binding Path=CollectionProperty[SomeEnum.Value2]}
. Was wäre eine korrekte Syntax dafür, wenn überhaupt? Vielen Dank.Indexierung Sammlung Eigenschaften mit Enums in XAML
Antwort
Nun, ich versuchte, die Bindung an eine Eigenschaft vom Typ Dictionary<Foo, String>
(wo Foo
ist eine Enumeration) wie folgt aus:
{Binding Foos[{x:Static my:Foo.Fizz}]}
... aber das warf eine verbindliche Ausnahme zur Laufzeit.
Seltsamerweise scheint die Verwendung eines int als Indexer auch für Eigenschaften, die auf einem Enum indiziert sind, zu funktionieren. Dieses:
{Binding Foos[2]}
... funktionierte gerade gut. Wenn Sie also Ihre enum-Werte als Ganzzahlen in XAML darstellen möchten, können Sie das auch tun.
Ansonsten denke ich, Ihre beste Wette wäre, direkt an Foos
über einen Wertkonverter zu binden, {x:Static my:Foo.Bar}
als Konverter Parameter übergeben.
Geben Sie einfach den Aufzählungswert als eine schmucklose Zeichenfolge an. Z.B. gegeben:
public enum Foo
{
Value1,
Value2
}
public class MainWindowVm
{
public string this[Foo foo]
{
get { return Enum.GetName(typeof(Foo), foo); }
}
}
wie so den ENUM-Wert angeben:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1"
Title="MainWindow" Height="350" Width="525">
<Window.DataContext>
<local:MainWindowVm/>
</Window.DataContext>
<Grid>
<TextBlock Text="{Binding Path=[Value1]}"/>
</Grid>
</Window>
x: Statische Markuperweiterung ist nicht erforderlich, da der XAML-Parser zur Unterstützung aufgebaut hat, dass die bereitgestellten Zeichenfolge mit den Werten unterstützt abbildet durch das Ziel enum.
Perfekt funktioniert. Vielen Dank. – MoonStom
- 1. Effizienz Indexierung häufig update Sammlung in Mongodb
- 2. XAML-Binding-Eigenschaften
- 3. Ignorieren Sammlung Eigenschaften in Property
- 4. Was ist mit Indexierung in MongoDB gemeint?
- 5. Einfache Erstellung von Eigenschaften, die Indexierung in C# unterstützen
- 6. ListenBox an Liste (Sammlung) in XAML binden
- 7. Access-Eigenschaften in anonymer Typ Sammlung - C#
- 8. Suche nach Artikeln mit gleichen Eigenschaften in einer Sammlung
- 9. Räumliche Indexierung
- 10. Theano Indexierung
- 11. Indexierung und Suche mit Lucy
- 12. WPF: XAML, erstellen eine beobachtbare Sammlung <object> in XAML in .NET 4.0
- 13. So benennen Sie Enums im Vergleich zu Eigenschaften
- 14. Lunr.js Indexierung?
- 15. Hilfe mit Enums in Java
- 16. Enums mit Daten in swift
- 17. Warum haben Enums in Swift Eigenschaften, aber keine gespeicherten Eigenschaften berechnet?
- 18. enums in C# - Aufgabe
- 19. XAML: Binden Sie an ein einzelnes Kind in einer Sammlung
- 20. Wie Klasse Eigenschaften in XAML von Xamarin zu binden, bildet
- 21. Versuchen, Eigenschaften einer IQueryable Sammlung zu ändern
- 22. Unglaublich langsam Indexierung in ElasticSearch
- 23. Indizierte Eigenschaften in Realm
- 24. Enums mit jQuery?
- 25. Enums Unterstützung mit Realm?
- 26. Liste/Sammlung von Verweisen auf Eigenschaften
- 27. Verkapselte Ereignisbehandlung mit Enums
- 28. SQL einfügen mit enums?
- 29. Javascript - Sammlung von Objekten mit übergeordneten Eigenschaften gemeinsam
- 30. Theano/numpy fortgeschritten Indexierung
Ja, darüber spreche ich. Die Konvertierung ist eine Fallback-Option. Vielen Dank. – Yegor