6

W poprzednim zapytania/odpowiedzi dowiedziałem się, jak wiązania danych w Windows Phone robi TypeConversion dla string do ImageSource pomocą TypeConverterAttribute - patrz https://stackoverflow.com/a/16753488/373321Jak ma Windows RT Dane wiążące zrobić Typ konwersji bez TypeConverterAttribute

Jestem teraz patrząc na ten sam problem w aplikacjach WindowsStore, gdzie TypeConverterAttributedoesn't exist.

Jeśli używam wiązania danych WinRT, to wyraźnie warstwa wiążąca dane nadal wykonuje poprawną konwersję. MSDN documentation mówi:

to zachowanie polega na konwersji typu bazowego, który przetwarza ciąg jako URI i zwraca równowartość BitmapImage (URI) konstruktora.

Jednak nie widzę żadnych metadanych w ogóle o tym, jak wie, jaką konwersję wykonać.

Próbuję zbudować własną implementację wiążącą dane, dzięki czemu będę w stanie naśladować działanie WinRT.

Czy istnieje gdzieś wskazówka dotycząca metadanych, która mówi Xaml o powiązaniu danych, jaką konwersję zastosować? A może ta konwersja string do ImageSource została jakoś upieczona w czasie wykonywania, ukryta przed warstwą CLR?

Jeśli jest ukryty, czy istnieje lista znanych konwersji automatycznych, aby umożliwić ich buforowanie w ramach implementacji wiążącej dane?

Odpowiedz

0

W aplikacjach systemu Windows 8 jest to zwykle obsługiwane przez utworzenie klasy dziedziczącej po IValueConverter, która jest następnie przypisywana obok określonego powiązania danych. Jak podano na stronie MSDN:.

„stworzyć konwertera poprzez implementację interfejsu IValueConverter i wdrożenie metody przekonwertować metoda powinna zwracać obiekt, który ma tego samego typu jako właściwość zależność, że wiążące cele, lub najmniej typ, który można niejawnie przekonać lub przekonwertować na typ docelowy. "

Oto link do pełnej doc: http://msdn.microsoft.com/en-US/library/windows/apps/windows.ui.xaml.data.binding.converter.aspx

Patrz sekcja „Przykłady” dla dalszych szczegółów.

Aby odpowiedzieć na pytanie, nie ma podpowiedzi metadanych, wystarczy utworzyć konwerter, a następnie jawnie przypisać konwerter wraz z niestandardowym powiązaniem danych.

2

omówiłem to pytanie za pośrednictwem serwisu Twitter z jednym z deweloperów WinRT (Tim Heuer)

Podstawowym podsumowanie tej rozmowy było:

  • WinRT nie ma czegoś takiego TypeConverterAttribute
  • Mała liczba elementów sterujących WinRT ma niewielką liczbę wewnętrznych konwersji, które będą stosować
  • Brak publicznie dostępnych informacji o kontrolach i konwersjach, które to są
+1

Ach, to trochę rozczarowujące.Pracowałem nad sterowaniem użytkownika, a brak tego okaleczał jego użycie w XAML. – unrelativity

Powiązane problemy