рдирдорд╕реНрддреЗред
WP8 рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рд▓рдВрдмреА рд╕реВрдЪреА рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдХреИрд╕реЗ рдХрд░реЗрдВ, рдЗрд╕ рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣рд╛рдВ рд╡рд┐рдВрдбреЛрдЬ 8 dektopnoy рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП рддрд░реАрдХреЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА ISupportIncrementalLading рдмрд╕ WP8 рдкрд░ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред
рдФрд░ рдЬрдм рд╕реЗ рдореИрдВ (рдПрдХ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ рдЦрд╛рд▓реА рд╕рдордп рдореЗрдВ) рдПрдХ рдЖрд╡реЗрджрди рдХрд░рддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдореИрдВрдиреЗ рдЕрдкрдирд╛ рд╕рдорд╛рдзрд╛рди рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рддреБрд░рдВрдд рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ рдЖрджрд░реНрд╢ рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛, рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдШрдВрдЯреЛрдВ рдЧреБрдЧрд▓реА рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рд╕реЗ рдмрдЪрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкреАрдПрд╕ рдирд╛рдЙ рдореИрдВрдиреЗ рдореЛрдиреЛрдЯреВрдЪ рдХреЗ рддрд╣рдд рдЖрдИрдУрдПрд╕ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░ рдРрд╕реА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдбреНрд░рд╛рдлреНрдЯ рд╕реЗ рд▓реЗрдЦ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЖрдк рдХрднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдХреМрди рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред
рдкреНрд░рд╕реНрддреБрддрд┐ рдПрдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрдЧреА рддрд╛рдХрд┐ рдЬреЛ рд▓реЛрдЧ рдЕрднреА рднреА рдордВрдЪ рдФрд░ .net рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рд╡реЗ рдЗрд╕реЗ рдЦреЗрд▓ рд╕рдХреЗрдВред
рдореИрдВ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ
- рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реВрдЪреА рд╣реИред
- рд╕реВрдЪреА рдореЗрдВ 100,500 рд╕реЗ рдЕрдзрд┐рдХ рдЖрдЗрдЯрдо рд╣реИрдВред рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдПрдХ рдЪрд┐рддреНрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
- рд╣рдо рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдлреЛрди рдореЗрдореЛрд░реА рдХреА рдХрдореА рд╕реЗ рди рдорд░реЗред рдФрд░ рди рдХреЗрд╡рд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ, рдмрд▓реНрдХрд┐ рдЙрдирдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВ
рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
XAML LongListSelector рдореЗрдВ рдмрдирд╛рдПрдБ
рдпрд╣ рд▓реЙрдиреНрдЧрд▓рд┐рд╕реНрдЯ рдЪрдпрдирдХрд░реНрддрд╛ рд╣реИ рдЬреЛ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдПрдордПрд╕ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд┐рдпрдВрддреНрд░рдг рд╣реИред рдЕрдм рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рд╕реНрдЯрдмреЙрдХреНрд╕ рдХреА рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдЦреИрд░, рд╣рдо рдирд╣реАрдВ рдЬреАрдд рдкрд╛рдПред
<phone:LongListSelector Width="480" DataContext="{Binding}" Name="List_ListSelector" ItemTemplate="{StaticResource List_ListSelectorItemDataTemplate}" />
рд╣рдорд╛рд░реЗ LongListSelector рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде App.xaml рдореЗрдВ рдПрдХ DataTemplate рдмрдирд╛рдПрдБред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рдкрд╛рда рд╣реИ рдЬреЛ рдЖрдЗрдЯрдо рдирдВрдмрд░ рдФрд░ рдЪрд┐рддреНрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
<Application.Resources> <DataTemplate x:Key="List_ListSelectorItemDataTemplate"> <StackPanel Margin="0,0,0,27" Height="400"> <TextBlock Text="{Binding Path=ID}" /> <Image Source="{Binding Path=ImageToShow}", Name="ListImage"></Image> </StackPanel> </DataTemplate> </Application.Resources>
рд╣рдо рдПрдХ рд╕рд╣рд╛рдпрдХ рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реА рд╢реАрдЯ, рд╕рдВрдЧреНрд░рд╣ рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг рд╣реЛрдЧрд╛ред рдЪрд▓реЛ рдЗрд╕реЗ рд▓реЙрдиреНрдЧрд╡реАрд░реНрдЯреБрдЕрд▓рд┐рд╕реНрдЯ рдХрд╣рддреЗ рд╣реИрдВред
class LongVirtualList { public LongListSelector List;
рдпрд╣ рдХреНрд▓рд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдХрдкреАрд╕ рд╣реИред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╣рдо рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдкреВрд░реНрдг рд╕рдВрдЧреНрд░рд╣ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВред рдпрд╣ рд╕рд╣рдЬ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рддрддреНрд╡реЛрдВ рдХреА рдХреЛрдИ рдорд░реЛрдбрд╝ рдирд╣реАрдВ (рдЧрддрд┐рд╢реАрд▓ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднреА рдПрдХ рдЫреЛрдЯреЗ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рддрддреНрд╡реЛрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╣рдорд╛рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ)ред рдЦрд╛рд▓реА рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдмрд╣реБрдд рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде рднреА рд╕реНрдореГрддрд┐ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрдирддрд╛ рд╣реИ (рдореИрдВрдиреЗ рдПрдХ рд▓рд╛рдЦ рдХреА рдЬрд╛рдБрдЪ рдХреА рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рдерд╛)ред
рдЕрдм рдордЬреЗрджрд╛рд░ рд╣рд┐рд╕реНрд╕рд╛ рдЖрддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореИрдВ рдпрд╣ рд╕рдм рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВред
MS рдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдпреЛрдЬрди рд╢реБрд░реВ рдХрд┐рдП:
ItemRealized рдФрд░
ItemUnrealizedрдЙрдирдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╕реВрдЪреА рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреА рд╣реИред рдЬрдм рдЗрд╕ рдЖрдЗрдЯрдо рдХреЛ рдЙрддрд╛рд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рджреВрд╕рд░рд╛ рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬреЛрдбрд╝: рдЖрдк рдЗрди рдШрдЯрдирд╛рдУрдВ рдХреЗ рдХреЙрд▓ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЬрдм рдлрд╝реЛрди "рдорд╣рд╕реВрд╕" рдХрд░рддрд╛ рд╣реИ рддреЛ рдЙрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╣ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕рдордЭрддрд╛ рд╣реИ? рдХрд┐рддрдиреЗ рд╕реВрдЪреА рдЖрдЗрдЯрдо рд╕реНрдХреНрд░реАрди рдкрд░ рдлрд┐рдЯ рд╣реЛрддреЗ рд╣реИрдВ + рдереЛрдбрд╝рд╛ рдкрд┐рдЫрд▓реЗ рдФрд░ рдЕрдЧрд▓реЗред рдФрд░ рдпрд╣рд╛рдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдиреБрдХрд╕рд╛рди рдЫрд┐рдкрд╛ рд╣реИ, рдЬреЛ рдореБрдЭреЗ рдЕрдиреБрднрд╡ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛, рдЙрд╕ рдкрд░ рдХрдИ рдШрдВрдЯреЗ рдорд╛рд░реЗ рдЧрдПред рдпрд╣ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдЖрдХрд╛рд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЪрд┐рддреНрд░) рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЙрдирдХрд╛ рдЖрдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк XAML рдореЗрдВ StackPanel Height = "400" рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ ItemRealized рдЗрд╡реЗрдВрдЯ ~ 6 рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЙрдард╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдЖрдк рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдПрдХ рдКрдВрдЪрд╛рдИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмрд╛рд╣рд░реА рдкрд░рд┐рдгрд╛рдо рд╕рдорд╛рди рд╣реЛрдЧрд╛ (рдпрджрд┐ рдЖрдк рдПрдХ рдмрдбрд╝реА рддрд╕реНрд╡реАрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ), рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрдВрдЬрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 50 рдЯреБрдХрдбрд╝реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛ рдФрд░ рдпрд╣ рдПрдХ рдореЗрдореЛрд░реА рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рддреНрд░реБрдЯрд┐ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред
рддреЛ:
public void longListSelector_ItemUnrealized(object sender, ItemRealizationEventArgs e) { BaseListElement item = (BaseListElement)e.Container.Content; if (item != null) { item.NullCache(); } } public void longListSelector_ItemRealized(object sender, Microsoft.Phone.Controls.ItemRealizationEventArgs e) { BaseListElement item = (BaseListElement)e.Container.Content; if (item != null) { if (item.Cached == false) { item.FillCache(); } } }
рд╕реНрд╡рдпрдВ рд╕реВрдЪреА рдЖрдЗрдЯрдореЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ
рд╕реВрдЪреА рдХрд╛ рдЖрдзрд╛рд░ рддрддреНрд╡ BaseListElement рд╡рд░реНрдЧ рд╣реИред рдЖрдк рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдХреЗ рдХрд┐рд╕реА рднреА рд╡рдВрд╢ рдХреЛ рдЙрд╕реА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
class BaseListElement : PropertyHelper
рд╕рдм рдХреБрдЫ рд╕реЛрдЪреЛ? рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдХреИрд╕реЗред рд╕рдорд╛рди рд╢реНрд░реЗрдгреА рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд╛рд▓рд╛ рдХреЛрдб рдХреБрдЫ рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рдорд░ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ WP8 рдмрд╣реБрдд "рд╣рд╛рдИ-рд╣реИрдВрдбреЗрдб" рд╣реИ (рд╕рд╣реА рд╢рдмреНрдж рдирд╣реАрдВ рд╣реИ!) рдбреЗрдЯрд╛ рдХреЗ рдмрд┐рдЯрдореИрдк рдЗрдореЗрдЬ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рдЖрдк рд╣реА рдХрд┐рд╕реА рдкрд░ рддрд╕реНрд╡реАрд░реЗрдВ рдЕрдкрд▓реЛрдб рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ!
рдЗрд╕рд▓рд┐рдП, рд╣рдо NullCache () рдФрд░ FillCache () рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдм рдЙрдиреНрд╣реЗрдВ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдВрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рдзрд┐рдпреЛрдВ рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд▓рд┐рдВрдХ рдХреЛ рд╣рдо ItemUnrealized рдФрд░ ItemRelized рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ e.Container рдХрдВрдЯреЗрдирд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред
рддреЛ, рд╕рд╣реА рдЫрд╡рд┐ рдХреИрд╢рд┐рдВрдЧ:
public virtual void NullCache(Image image) { if (this.ImageToShow != null) {
рд╣рдореЗрдВ рд▓реЛрдбрд┐рдВрдЧ / рдЕрдирд▓реЛрдбрд┐рдВрдЧ рддрддреНрд╡реЛрдВ рдХреЗ рд╣рдорд╛рд░реЗ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐ рдХрд╣рд╛рдВ рдорд┐рд▓реЗрдЧреА?
рдпрд╣рд╛рдБ рд╕реЗ:
public void longListSelector_ItemRealized(object sender, Microsoft.Phone.Controls.ItemRealizationEventArgs e) { BaseListElement item = (BaseListElement)e.Container.Content; Image img= FindChild<Image>(e.Container, "ListImage"); if (item != null) { if (item.Cached == false) { item.FillCache(); } } } public static T FindChild<T>(DependencyObject parent, string childName) where T : DependencyObject { if (parent == null) { return null; } T foundChild = null; int childrenCount = VisualTreeHelper.GetChildrenCount(parent); for (int i = 0; i < childrenCount; i++) { DependencyObject child = VisualTreeHelper.GetChild(parent, i); var childType = child as T; if (childType == null) {
рдХреЗрд╡рд▓ рдереЛрдбрд╝рд╛ рд╣реА рд╢реЗрд╖ рд╣реИ, рдореИрдВ рдкреНрд░реЙрдкрд░реНрдЯреА рд╣реЗрд▓реНрдкрд░ рд╕рд╣рд╛рдпрдХ рд╡рд░реНрдЧ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджрд┐рдЦрд╛рдКрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИ:
public abstract class PropertyHelper:INotifyPropertyChanged { protected void NotifyChange(string args) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(args)); } } public event PropertyChangedEventHandler PropertyChanged; }
рд╕реВрдЪреА рдЖрдЗрдЯрдореНрд╕ рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ PropertyChanged рдШрдЯрдирд╛рдУрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╣рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреЗ рдЕрджреНрдпрддрди рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддреА рд╣реИ, рднрд▓реЗ рд╣реА рд╡реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЗрд╢рд╛рд░реЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╕реВрдЪреА рдореЗрдВ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╣реЛрдВред рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рднрд╛рд╖рд╛ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реВрдЪреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп, рдЗрд╕рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛, рд╕реНрд╡рдпрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЖрдЦрд┐рд░реА рдХреНрд╖рдг рдФрд░ рдЖрдк рдХрд░ рд░рд╣реЗ рд╣реИрдВред
public MainPage() { InitializeComponent(); LongVirtualList virtualList = new LongVirtualList(List_ListSelector); }
рдЗрд╕ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдШрдВрдЯреА рдФрд░ рд╕реАрдЯреА рдмрдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреИрд╢ рдпрд╛ рдХреБрдЫ рдФрд░ рдЬреЛ рдЖрдк рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдпрд╣ рд╕реВрдЪреА рдореЗрд░реЗ рд▓рд┐рдП 1600 * 1200 рдХреЗ рд╣рдЬрд╛рд░реЛрдВ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрдирдХреА рдЪрд┐рдХрдиреА рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдФрд░ рд╕рдордп рдкрд░ рд▓реЛрдбрд┐рдВрдЧ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрддреА рд╣реИред
рдореИрдВрдиреЗ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдореБрджреНрджреЗ рдХреЛ рдирд╣реАрдВ рдЫреБрдЖред
рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдпрд╣ рд╕рдм рдЙрдкрдпреЛрдЧреА рд▓рдЧреЗрдЧрд╛ред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рдХреЛрдИ рдЕрдВрдЧреНрд░реЗрдЬреА рдЗрдВрдЯрд░рдиреЗрдЯ рдмреНрд░реЗрдХ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рдХреА рдХреЛрдИ рднреА рд░реЗрд╕рд┐рдкреА рдирд╣реАрдВ рдорд┐рд▓реА, рдореБрдЭреЗ рдЦреБрдж рд╣реА рд╕рдмрдХреБрдЫ рдИрдЬрд╛рдж рдХрд░рдирд╛ рдкрдбрд╝рд╛ред