मेरे पास धीमा डेटा स्रोत है, इसलिए मैं इसे असीमित रूप से बना देता हूं। इसके अलावा, मेरे व्यूमोडेल के कई गुण स्वयं धीमे हैं। इसलिए, मैं उन्हें अतुल्यकालिक भी (एक Telerik संपत्ति ग्रिड के लिए बाध्य) बनाने:"IsAsync" धीमी संपत्ति के लिए कोई प्रभाव नहीं है?
<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>
जब डीबगिंग, मैं देख सकता हूँ कि डेटा स्रोत वास्तव में, एक और धागा में बनाया गया है और इसलिए यूआई अवरुद्ध नहीं। हालांकि, जब मैं SlowProperty
में जाता हूं तो डीबगर बताता है कि मैं अभी भी मुख्य थ्रेड में हूं - जो इस तथ्य से साबित होता है कि यूआई संपत्ति लौटने तक लटकती है।
प्रश्न: मुझे यहां क्या याद आ रही है? IsAsync
असीमित गुणों के लिए पर्याप्त नहीं है?
संपादित करें: ऐसा लगता है कि यह सामान्य TextBlock
के लिए काम करता है। IsAsync
व्यवहार नियंत्रण के कार्यान्वयन पर निर्भर है? (इस मामले में मैं संपत्ति ग्रिड में एक बग संदेह है।)
क्या आप कह रहे हैं कि 'प्राथमिकता बाइंडिंग' असीमित बाध्यकारी के लिए महत्वपूर्ण है? – l33t