Mam wolne źródło danych, więc tworzę je asynchronicznie. Ponadto wiele właściwości mojego viewmodelu jest powolnych. Stąd, robię im zbyt asynchroniczny (wiążący do siatki własności Telerik):"IsAsync" nie ma wpływu na powolną właściwość?
<Grid>
<Grid.DataContext>
<ObjectDataProvider ObjectType="{x:Type viewModels:MyViewModel}"
IsAsynchronous="True" x:Name="myViewModel" />
</Grid.DataContext>
<telerik:RadPropertyGrid x:Name="settings" Item="{Binding IsAsync=True}">
<telerik:RadPropertyGrid.PropertyDefinitions>
<telerik:PropertyDefinition
Binding="{Binding Path=SlowProperty,IsAsync=True,Mode=TwoWay}" />
</telerik:RadPropertyGrid.PropertyDefinitions>
</telerik:RadPropertyGrid>
</Grid>
podczas debugowania, widzę, że źródło danych jest rzeczywiście stworzony w innym wątku, stąd nie blokując UI. Jednakże, kiedy dostaję się do SlowProperty
, debugger ujawnia, że wciąż jestem w Głównym wątku - o czym świadczy fakt, że interfejs użytkownika wisi, dopóki właściwość nie powróci.
Pytanie: Czego mi tu brakuje? Czy nie wystarcza IsAsync
dla właściwości asynchronicznych?
Edytuj: Wygląda na to, że działa normalnie pod TextBlock
. Czy zachowanie IsAsync
jest zależne od implementacji kontrolki? (W tym przypadku podejrzewam błąd w siatce właściwości.)
Czy mówisz, że "PriorityBinding" ma kluczowe znaczenie dla asynchronicznego powiązania? – l33t