Xamarin.forms: [рдмрдЧ] TypedBinding`2 [TSource, TProperty] рдореЗрдВ InvalidOperationException .Apply

рдХреЛ рдирд┐рд░реНрдорд┐рдд 28 рдЬреВрди 2019  ┬╖  58рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: xamarin/Xamarin.Forms

рд╡рд┐рд╡рд░рдг

рдореЗрд░реЗ рдРрдк рдореЗрдВ рдЗрди рдЕрдЦрдВрдбрд┐рдд рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рджреЗрдЦрдХрд░ред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╡реЗ рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓ рдХреЙрд▓реЗрд▓реЗрд╢рди рдХреЗ рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓ рдХреЙрд▓реЗрдмреЗрд▓рд┐рдпрди рд╕реЗ рдмрдВрдзреЗ рд▓рд┐рд╕реНрдЯ рд╡реНрдпреВ рдореЗрдВ рдкрддреНрддреА рдЖрдЗрдЯрдо рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди рд╣реЛрддреЗ рд╣реИрдВред

рдореИрдВ рд╕рдВрдХрд▓рд┐рдд рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬреЛ рдорджрдж рдХрд░рддрд╛ рд╣реИред

System.InvalidOperationException: Operation is not valid due to the current state of the object.

рдпрд╣ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ AppCenter рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ:

TypedBinding`2[TSource,TProperty].Apply (System.Boolean fromTarget)
TypedBinding`2+PropertyChangedProxy[TSource,TProperty].<OnPropertyChanged>b__16_0 ()
Thread+RunnableImplementor.Run ()
IRunnableInvoker.n_Run (System.IntPtr jnienv, System.IntPtr native__this)
(wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.39(intptr,intptr)

рдкреНрд░рдЬрдирди рдХрд░рдиреЗ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдареЛрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдирд╣реАрдВ рд╣реИ, рдХреНрд╖рдорд╛ рдХрд░реЗрдВред

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

рдореВрд▓рднреВрдд рдЬрд╛рдирдХрд╛рд░реА

  • рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдореБрджреНрджрд╛: 3.6 рдирд╡реАрдирддрдо
  • рдЕрдВрддрд┐рдо рдЬреНрдЮрд╛рдд рдЕрдЪреНрдЫрд╛ рд╕рдВрд╕реНрдХрд░рдг: рдЕрдЬреНрдЮрд╛рдд
  • рдЖрдИрдбреАрдИ: рд╡реАрдПрд╕ 2019
  • рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд▓рдХреНрд╖реНрдп рд░реВрдкрд░реЗрдЦрд╛:

    • Android: 9.0

  • Android рд╕рдорд░реНрдерди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдВрд╕реНрдХрд░рдг: рдирд╡реАрдирддрдо
  • рдирдЧреЗрдЯ рдкреИрдХреЗрдЬ:
  • рдкреНрд░рднрд╛рд╡рд┐рдд рдЙрдкрдХрд░рдг:

рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ

рдкреНрд░рдЬрдирди рд▓рд┐рдВрдХ

listview 7 high in-progress Android iOS ЁЯНО bug

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@StephaneDelcroix @ Kingces95 @wachs
рдЖрдк рд▓реЛрдЧ TypedBinding рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдкреАрдЫреЗ рд▓рдЧ рд░рд╣реЗ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХрдИ рджреЗрд╡рддрд╛ рд╡рд╣рд╛рдБ (рдореЗрд░реЗ рд╕рд╣рд┐рдд) рдЕрдм рдЙрдирдХреЗ рдРрдк рдХреНрд░реИрд╢ рд╣реЛ рдЧрдП рд╣реИрдВ рдФрд░ InvalidOperationException рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХреЗ рдЧрдП TypedBinding ред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @samhouts рдЙрд╕рдХреА рдзрд╛рд░рдгрд╛ рдореЗрдВ рд╕рд╣реА рд╣реИ, рдХрд┐ GC рдХреЗ рдмрд╛рдж рдореЗрдВ рдФрд░ target TypedBinding рдирд┐рдХрд╛рд▓ рджреЗрддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдРрдк рдореЗрдВ рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмрдбрд╝рд╛ рдорд╛рдорд▓рд╛ рд╣реИ) ListView рдХрдИ рдЬрдЯрд┐рд▓ DataTemplates , TypedBinding рдПрдХ InvalidOperationException рдлреЗрдВрдХрддрд╛ рд╣реИ рдЬреЛ рдХрднреА рдкрдХрдбрд╝рд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ рд╕рдВрднрд╡рддрдГ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░) ??) рдЗрд╕ рддрд░рд╣:

рдЯрд╛рдЗрдкреНрдбрдмрд╛рдЗрдВрдбрд┐рдВрдЧ 2[TSource,TProperty].Apply (System.Boolean fromTarget) System.InvalidOperationException: Operation is not valid due to the current state of the object. Stack traces TypedBinding 2 [TSource, TProperty] .Apply (System.Boolean fromTarget)
TypedBinding`2 + PropertyChangedProxy [TSource, TProperty]редb__16_0 ()
рдереНрд░реЗрдб + рд░рдирдиреЗрдмрд▓рдЗрдореНрдкреНрд▓реАрдорд░ред рд░реМрди ()
IRunnableInvoker.n_Run (System.IntPtr jnienv, System.IntPtr рдЬрдирддрдВрддреНрд░)
(рд░реИрдкрд░ рдбрд╛рдпрдиреЗрдорд┐рдХ-рдореЗрдердб) Android.Runtime.DynamicMethodNameCounter.43 (intptr, intptr)

рдЕрдм @mfeingol рдпрдереЛрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреВрдЫрддрд╛ рд╣реИ рдХрд┐ InvalidOperationException рдХреНрдпреЛрдВ рд╣реИ рдЬреЛ рдЗрд╕ рджреБрд░реНрдШрдЯрдирд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд▓рдХреНрд╖реНрдп рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рдереА, рдХреНрдпреЛрдВ рдПрдХ рдХрдордЬреЛрд░ рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ?

рдореИрдВ рд╕реНрд╡рдпрдВ .NET 3.0 рд╕реЗ WPF рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВ рдФрд░ рдЬрд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рдХрд╛рд░рдг рдХрднреА рдХреЛрдИ рджреБрд░реНрдШрдЯрдирд╛ рдирд╣реАрдВ рд╣реБрдИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рддреЛ рдореЗрд░рд╛ рд╕рд╡рд╛рд▓:
рдХреНрдпрд╛ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рд╣реИ рдХрд┐ TypedBinding рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрддрд╛ рд╣реИ рдФрд░ рдЕрдЧрд░ рдЗрд╕реЗ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рддреЛ рд▓рдХреНрд╖реНрдп рдХреЛ рдЕрдирджреЗрдЦрд╛ рдирд╣реАрдВ рдХрд░рддрд╛?

рдпрд╛ рд╢рд╛рдпрдж рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╣реА рд╕рднреА рдмрд╛рдзреНрдпрдХрд╛рд░реА рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдкрдХрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╣рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЙрдиреНрд╣реЗрдВ рдирд┐рдЧрд▓рдиреЗ рдпрд╛ рдЙрдЪрд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП?

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рдЙрддреНрдкрд╛рджрди рдРрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрдЧ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдореИрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдордзреНрдпрд╕реНрде Xamarin.Forms рд░рд┐рд▓реАрдЬ рдмрдирд╛рддрд╛ рд╣реВрдВ рдЬреЛ рдЗрд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдореИрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рдХреЗ рдХреНрдпрд╛ рдЕрд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рднрд╛рд╡ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ!

@ рдмреНрд░реБрдЬрд╝рдХреЛрд╡рд╕реНрдХреА - рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рднреА рд░реБрдЪрд┐ рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рд╕рднреА 58 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

@mfeingol рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдорд╛рдВрдЧ рдкрд░ рдлрд┐рд░ рд╕реЗ рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рддрд░рд╣ рдХрд╛ рдХрдард┐рди рд╣реИред рдХреЛрдб рдХреА рдЖрдкрдХреА рд╕рдордЭ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдкрдХреА рдУрд░ рд╕реЗ рдХреЛрдИ рд╕реБрд░рд╛рдЧ?

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдбреЗрдЯрд╛рдЯрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ XAML рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

рдореИрдВ рдЕрдм рдпрд╛рддреНрд░рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди fwiw рдореЗрд░рд╛ рдЕрд╕реНрдерд╛рдпреА рд╣рд▓ рд╕рдВрдХрд▓рд┐рдд рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдерд╛ред

@mfeingol рдареАрдХ рд╣реИ, рдХрд┐ рд╕рд╣реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдореМрдХрд╛ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдореВрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВ iOS рдФрд░ Android рджреЛрдиреЛрдВ рдкрд░ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рд╕рдВрдХрд▓рд┐рдд рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

AppCenter рд╕рдорд╕реНрдпрд╛:

TypedBinding 2[TSource,TProperty].Apply (System.Boolean fromTarget) TypedBinding 2 + PropertyChangedProxy [TSource, TProperty]редb__16_0 ()
рдереНрд░реЗрдб + рд░рдирдиреЗрдмрд▓рдЗрдореНрдкреНрд▓реАрдорд░ред рд░реМрди ()
IRunnableInvoker.n_Run (System.IntPtr jnienv, System.IntPtr рдЬрдирддрдВрддреНрд░)
(рд░реИрдкрд░ рдбрд╛рдпрдиреЗрдорд┐рдХ-рдореЗрдердб) System.Object.26 (intptr, intptr)

Xamarin рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ, Xaml рдкреЗрдЬ рдХреЗ рд╕рд╛рде ViewModel - рд╕реНрдХреНрд░реЙрд▓ рдпреБрдХреНрдд рдЧреНрд░рд┐рдб - рд╕реНрдХреНрд░реЙрд▓рд╡реНрдпреВ рдореЗрдВ рд▓реЗрдмрд▓ рд╣реЛрддреЗ рд╣реИрдВред рдмрд╣реБрдд рд╕рд╛рдзрд╛рд░рдгред

@samhouts : рдореИрдВрдиреЗ рдЕрдкрдиреА рдкреВрд░реА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдирдореВрдирд╛ рдРрдк рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореЗрд░реЗ рдкреНрд░реЛрдбрдХреНрд╢рди рдРрдк рдореЗрдВ 100% рд░рд┐рдкреНрд░реЛ рд╣реИред

рдХреНрдпрд╛ рдореИрдВ рдЖрдкрдХреА Azure DevOps рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рдЯреАрдо рдХреА рдЕрдиреБрдорддрд┐ рдХрд┐рд╕реА рдХреЛ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рд╡реЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХреЗрдВ?

microsoft.com рдкрд░ shneuvil

рдЖрдк рдЗрд╕рдореЗрдВ рд╣реИрдВ: https://dev.azure.com/sideroads/Sideroads

рд░реЗрдкреНрд░реЛ рдЪрд░рдг:

  1. git checkout 6698-repro рдФрд░ рдирд┐рд░реНрдорд╛рдгред рдЖрдкрдХреЛ рдкреИрдХреЗрдЬ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╕реВрдЪреА рдореЗрдВ рдмрд╛рд╣рд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
  2. рдРрдк рдЪрд▓рд╛рдПрдВ рдФрд░ рдЯреНрд░рд┐рдкреНрд╕ рдкреЗрдЬ рд╕реЗ рдПрдХ рдирдпрд╛ рдЯреНрд░рд┐рдк рдмрдирд╛рдПрдВред рдпрд╛рддреНрд░рд╛ рдХреЛ "рдЯреЗрд╕реНрдЯ" рдирд╛рдо рджреЗрдВ рдФрд░ рдкреНрд░рд╕реНрдерд╛рди рдФрд░ рдЖрдЧрдорди рдФрд░ рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЛрдВ (рдЬреИрд╕реЗ рдПрд╕рдИрдП рдФрд░ рдПрд▓рдПрдПрд╕) рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдЪреВрдХ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВред
  3. рдЗрд╕реЗ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рддреНрд░рд╛ рдкрд░ рдЯреИрдк рдХрд░реЗрдВред
  4. рд╣реИрдордмрд░реНрдЧрд░ рдореЗрдиреВ рд╕реЗ, рдореМрд╕рдо рдХреЗ рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдПрдВ, рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдореМрд╕рдо рдХреА рд░рд┐рдкреЛрд░реНрдЯ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИред
  5. рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЬрд╛рдПрдВ, рдореМрд╕рдо рдкреНрд░рджрд╛рддрд╛ рдХреЛ NWS рд╕реЗ HERE рдкрд░ рдмрджрд▓реЗрдВред
  6. рдореМрд╕рдо рдкреГрд╖реНрда рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред рдЖрдкрдХреЛ рдПрдХ рджреБрд░реНрдШрдЯрдирд╛ рдХреЛ рдмрд╣реБрдд рдЬрд▓реНрджреА рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдХреЗ рдореМрд╕рдо рдкреГрд╖реНрда рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рдореМрд╕рдо рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдПрдХ рдФрд░ рджреБрд░реНрдШрдЯрдирд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдпрд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдзрд┐рдХ рдкрд░рд┐рд╖реНрдХреГрдд рдирд┐рд░реНрдпрд╛рдд рдХрд░реВрдВрдЧрд╛ред

@PureWeen : рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

@mtirona : рдореБрдЭреЗ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдкрд╣рд▓реЗ рдпрд╛рдж рдЖрдИ, рдХреНрд╖рдорд╛ рдХрд░реЗрдВред рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдЖрдк рд╕рдВрдХрд▓рд┐рдд рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд░рд┐рдкреНрд░реЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ рдЬреЛ рдорд╛рдВрдЧ рдкрд░ рджреБрд░реНрдШрдЯрдирд╛ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ?

@mfeingol рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рднреАрддрд░ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдорд╛рдВрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рд░рд▓ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ - рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ AppCenter рдореЗрдВ рд╕реИрдХрдбрд╝реЛрдВ рджреБрд░реНрдШрдЯрдирд╛рдПрдВ рд╣реИрдВред рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рджрд┐рд╢рд╛ рдореЗрдВ рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ ...

@mtirona : рдХреНрдпрд╛ рдЖрдк 100% рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдЖрдк x рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ: рдЕрдкрдиреЗ XAML рдореЗрдВ рдХрд╣реАрдВ рднреА рдбреЗрдЯрд╛

@ mfeingol x рдерд╛: рдореВрд▓ рдкреГрд╖реНрдареЛрдВ рдкрд░ рдбреЗрдЯрд╛

рдореИрдВ рдкрд╛рдВрдЪ-рдиреМ рдирд┐рд╢реНрдЪрд┐рдд рд╣реВрдВ рдХрд┐ рдпрд╣ XamlC рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ TypedBindings рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ (рдЬреЛ рдХрд┐ _amly_ Xaml рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ)

рд╕рд╛рдЗрдб рдиреЛрдЯ: рдореИрдВ Xamarin рдлреЙрд░реНрдо 3.6 рдкрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореИрдВрдиреЗ рдЕрднреА рдирд╡реАрдирддрдо 4.1 рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рдЕрдкрдиреЗ рдРрдк рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ, рдореИрдВрдиреЗ рддреБрд░рдВрдд рдЗрд╕ рджреБрд░реНрдШрдЯрдирд╛ рдХреЛ рдПрдХ рд╕реВрдЪреАрдмрджреНрдз рд╕реВрдЪреА рдкреГрд╖реНрда рдореЗрдВ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝рддреЗ рд╣реБрдП рджреЗрдЦрд╛ред рдЗрд╕рд▓рд┐рдП рдореБрджреНрджрд╛ рдЕрднреА рднреА 4.1.0.618606 рдХреЗ рд╕рд╛рде рдореМрдЬреВрдж рд╣реИред

@PureWeen : рдореИрдВрдиреЗ рдПрдХ рд╢рд╛рдЦрд╛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдКрдкрд░ рджрд┐рдП рдЧрдП repro рдЪрд░рдгреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЪреЗрдХрдЖрдЙрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рдЖрдкрдХреЗ рд▓рд┐рдП рддреБрд░рдВрдд рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ

@mfeingol рдХреНрдпрд╛ рдЖрдк рдореЗрд░реЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдпрд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдзрд┐рдХ рдкрд░рд┐рд╖реНрдХреГрдд рдирд┐рд░реНрдпрд╛рдд рдХрд░реВрдВрдЧрд╛ред

рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдХрджрдореЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдХреБрдЫ рднреА рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рдирд╣реАрдВ рд╣реБрдЖ

рдареАрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП @mfeingol рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдпрд╛ рдХреНрдпреЛрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдореИрдВ рдЕрдм рддрдХ рдЬрд╛рдирддрд╛ рд╣реВрдВ

TypedBindings BindableObject рдХреЗ рд▓рд┐рдП рдПрдХ WeakReference рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдРрд╕реА рдЪреАрдЬрд╝ рд╣реИ рдЬреЛ BindableObject рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреА рд╣реИ рддреЛ рдпрд╣ рдЙрд╕ рд╕рдВрджрд░реНрдн рдХреЛ рдЦреЛ рджреЗрдЧреАред

рдпрд╣рд╛рдВ рд╡рд╣ рдХреЛрдб рд╣реИ рдЬреЛ рдХреНрд░реИрд╢ рдХрд░рддрд╛ рд╣реИ
`` `рд╕реА #
рдЕрдЧрд░ (_weakTarget.TryGetTarget (рд▓рдХреНрд╖реНрдп рд╕реЗ рдмрд╛рд╣рд░))
рдлреЗрдВрдХ рдирдИ InvalidOperationException ();


If you look at the output of the application while it's running the exception always happens after a GC which makes sense why you are only seeing this after loading a larger data set.

As a test with the TypeBindings I created a nuget where it stores the source and target to a local variable just to see what would happen 

```C#
            _weakSource.SetTarget(source);
            _weakTarget.SetTarget(bindObj);
            _bindObj = bindObj;
            _source = source;
            ApplyCore(source, bindObj, targetProperty);
        }

        BindableObject _bindObj;
        object _source;

рдФрд░ рдЕрдЧрд░ рдореИрдВ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рджреБрд░реНрдШрдЯрдирд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдореЗрд░реА рд╕реЛрдЪ рдпрд╣ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рддрд░рд╣ рдЖрдкрдХрд╛ рдбреЗрдЯрд╛ рдПрдХ рдРрд╕реА рдЬрдЧрд╣ рдкрд░ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ LocationDayWeatherViewModel рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд░рд╣реА рд╣реИ, рдЬреЛ ViewCell рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИ, рдЯрд╛рдЗрдкрдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╣реИ рдФрд░ рдпрд╣ рдмрд╛рдд рд╣реИред рдореИрдВ рдЕрднреА рднреА рдХрд╛рдлреА рдиреАрдЪреЗ рдЯреНрд░реИрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдЕрдЧрд░ рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╣рдорд╛рд░реА рдУрд░ рд╕реЗ рдПрдХ рдЕрдкрд╡рд╛рдж рд╣реИ рддреБрдореНрд╣рд╛рд░рд╛ред рдХреНрдпрд╛ рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рд╕рднреА рдмрдирд╛рдП рдЧрдП LocationDayWeatherViewModel рдХрд╛ рд╕рдВрджрд░реНрдн рдмрдирд╛рдП рд╣реБрдП рд╣реИрдВ рдЬреЛ ListView рд╕реЗ рдмрдВрдзреЗ рд╣реИрдВ?

рдЗрд╕ рдорд╛рдорд▓реЗ рдХреА рддрд▓рд╛рд╢ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдкреВрд░реНрдг рдРрдк рдХреЗ рдмрд╛рд╣рд░ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдард┐рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрдордЬреЛрд░ рд╕рдВрджрд░реНрднреЛрдВ рд╕реЗ рдпреБрдХреНрдд рдХреБрдЫ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ рдПрдХ рд╕рд░рд▓ рд░реАрдкреНрд░реЛ рдореЗрдВ рдореЗрдореЛрд░реА рдкреНрд░реЗрд╢рд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рд╡реИрд╕реЗ рднреА, рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ LocationDayWeatherViewModel рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреГрд╢реНрдпрдореЛрдбреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдЕрдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдореМрд╕рдо рдХреЗ рддрд╛рдЬрд╝рд╛ рд╣реЛрдиреЗ рдХреЗ рджреМрд░рд╛рди рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдб рддрд╛рдЬрд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмрд╛рдзреНрдп рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓рдХреЛрд▓реЗрдХреНрд╢рди рдХреЛ рд╕рд╛рдл рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк bps рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ ExpandableGroupCollectionViewModel.Refresh рдореЗрдВ рдЧрд╣рд░рд╛ рд╣реЛрддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмрд╛рдзреНрдп рдСрдмреНрдЬрд╝рд░реНрд╡реЗрдмрд▓ рдХреЙрд▓реЗрдХреНрд╢рди рдХреЛ рдХреНрд▓рд┐рдпрд░ рдХрд░рдирд╛ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдСрдкрд░реЗрд╢рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ XF рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрдордЬреЛрд░ рд░рд┐рдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░реЗрдЧрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдЗрд╕ рддрд░рд╣ рдХреА рджреМрдбрд╝ рд╣реЛрдЧреАред

рдПрдХ рддрд░рдл: рдореИрдВ рдореЗрдВ рдЖрдЗрдЯрдо рдХреА рдкреНрд░рддрд┐ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА this рдореЗрдВ рд╕рдорд╛рд╢реЛрдзрди рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕реВрдЪреА рдореЗрдВ Refresh , рд▓реЗрдХрд┐рди рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ, рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдорд╛рд▓реВрдо рдерд╛ред рдореИрдВрдиреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕реВрдЪреА рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ GC рдиреЗ рдЗрд╕реЗ рднреА рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЕрдЧрд░ XF рдмрд╛рд╕реА рдмрдВрдзрди "рдмрд╛рдж рдореЗрдВ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗрдЧрд╛ рдХрд┐ рдХрд┐рд╕реА рдРрдк рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд╕реНрдерд┐рд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЧрд▓рддрдлрд╣рдореА рд╣реЛ рд╕рдХрддреА рд╣реИред

(рдФрд░ рд╣рд╛рдВ, рдореМрд╕рдо / рд╡рд┐рд╕реНрддрд╛рд░рдХ рдХреЛрдб рдирд┐рдпрдВрддреНрд░рдг рд╕реЗ рдереЛрдбрд╝рд╛ рдмрд╛рд╣рд░ рд╣реИред рдХрд╛рд╢ рдПрдХреНрд╕рдПрдл рдХрд╛ рдПрдХ рджреЗрд╢реА рд╡рд┐рд╕реНрддрд╛рд░рдХ рдирд┐рдпрдВрддреНрд░рдг рд╣реЛрддрд╛ ...)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрдореЛрд░реА рдкреНрд░реЗрд╢рд░ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдпрд╛ рд╕рд┐рд░реНрдл GC.Clect рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдПрдХ рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕рд▓рд┐рдП рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ TypedBinding рдкрд░ OnPropertyChanged UI рдереНрд░реЗрдб рдкрд░ рдорд╛рд░реНрд╢ рдХрд┐рдпрд╛ рд╣реБрдЖ рд╣реИ

https://github.com/xamarin/Xamarin.Forms/blob/7cc9a282bdeb76405c793574ebe0d096072f4228/Xamarin.Forms.Core/TypedBinding.cs#L275

рддреЛ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдХреЗ рд╕рд╛рде рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

UI рдереНрд░реЗрдб рдкрд░ PropertyChanged рдХрддрд╛рд░
рд╕реНрдкрд╖реНрдЯ
рдЬреАрд╕реА
рдХрдордЬреЛрд░ рд╕рдВрджрд░реНрдн рдХреЛ рдЦреЛ рджреЗрддрд╛ рд╣реИ
PropertyChanged рдЕрдм рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрддрд╛ рд╣реИ

рд╢рд╛рдпрдж рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ?
https://github.com/xamarin/xamarin-android/issues/2049

@StephaneDelcroix рдореЗрдВ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ :-)

рдХрд▓ рд░рд╛рдд рдореЗрд░реЗ рдкрд╛рд╕ рдереЛрдбрд╝рд╛ рдЦрд╛рд▓реА рд╕рдордп рдерд╛, рдФрд░ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕рд░рд▓ рд░реАрдкреНрд░реЛ рдореЗрдВ Clear() рдХреЙрд▓ рдХреЗ рдмрд╛рдж GC.Collect() рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВ рдЙрд╕ рддрд░рд╣ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рдерд╛ред

рдХреНрдпрд╛ рдЖрдкрдиреЗ рд▓рдВрдмрд┐рдд рдлрд╛рдЗрдирд▓ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд┐рдпрд╛?

рд╣рдо рдЗрд╕реЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреЗрд╡рд▓ рд╕реБрдкрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ
https://github.com/xamarin/Xamarin.Forms/blob/a76db1407a76fccbf487425db1bca5d15f925127/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Helpers/GarbageCollectionHelper.cs#L9

рдпрд╣ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдХреЙрд▓ рд╣реИред рд▓реЗрдХрд┐рди рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдЙрд╕рдХреЗ рдмрд╛рдж рднреА, Clear() рд░реЗрдкреНрд░реЛ рдЯреНрд░рд┐рдЧрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рддреЛ рдПрдХ рдХрджрдо рдкреАрдЫреЗ рд╣рдЯрддреЗ рд╣реБрдП ... рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрджрд┐ рдХреЛрдИ рдмрдВрдзрди рдХрдордЬреЛрд░ рд╕рдВрджрд░реНрдн рдзрд╛рд░рдг рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд╣ рд╡рд╕реНрддреБ GC'd рд╣реЛ рд╕рдХрддреА рд╣реИред рддреЛ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ, рдЬреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдПрдХреНрд╕рдПрдл рдХреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЙрд╕реЗ рд╢рд╛рдпрдж рдкреНрд░реЙрдкрд░реНрдЯреАрдЪреЗрдВрдЬ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдРрдк рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, рдпрд╣ рдФрд░ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдХреНрдпрд╛ рдЖрдк рдХреЛрд╢рд┐рд╢ рдФрд░ рдкреБрдирдГ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ repro рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдореИрдВ рдЖрдЬ рд░рд╛рдд рдХреЛрдб рд╕рдВрд▓рдЧреНрди рдХрд░реВрдВрдЧрд╛ред рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдЗрди-рдРрдк рд░рд┐рдкреНрд░реЛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦрд╛ рд╣реИ, рдПрдХ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдРрдк рдореЗрдВ рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рддрдХ рдЗрд╕рдХреЗ рдЕрдВрджрд░ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрдирд╛ рд╣реИред

@PureWeen : рдЗрд╕рдХреЗ рдирд┐рджрд╛рди рдореЗрдВ рдорджрдж рдХреЗ рд▓рд┐рдП рдореИрдВ рдХреБрдЫ рдФрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

@mfeingol рдЕрднреА рдирд╣реАрдВ рдЬрдм рддрдХ рдЖрдкрдХреЛ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рдХрд┐ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдРрдк рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ

рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдордЭ рд╕рдХреЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ https://github.com/xamarin/Xamarin.Forms/issues/6698#issuecomment -519359760 рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ? рдпрд╛ рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдкрд░ рдЕрднреА рднреА рд▓рд╛рдкрддрд╛ рдЯреБрдХрдбрд╝реЗ рд╣реИрдВ?

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВ) -:

@ysmoradi : рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЖрдк рдПрдХ рд╕рд╛рдзрд╛рд░рдг

рдпрд╣ рдореЗрд░реЗ рдЙрддреНрдкрд╛рджрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рднреА рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рд╣реИ!

рдореЗрд░реЗ рдкрд╛рд╕ рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ рднреА рд░рд┐рдкреНрд░реЛ рд╣реИ , рд▓реЗрдХрд┐рди рд░реАрдкреНрд░реЛ рдХреЗ рдмрд┐рдирд╛ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рдПрдХ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред :-(

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рдВрджреЗрд╢ рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдо + рджреГрд╢реНрдп рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд╛рдо + рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╕рдВрджрд░реНрдн рдХрд╛ рдкреНрд░рдХрд╛рд░ рдирд╛рдо рд╣реЛрдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмреЗрд╣рддрд░ рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдореИрдВ рд╕рдЯреАрдХ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ, iOS рдФрд░ Android, xamarin рд░реВрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ 4.2.0.709249ред
рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдкрдиреЗ xaml рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ DataTemplate рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕реВрдЪреА рджреГрд╢реНрдп рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ XTl рдкреЗрдЬ рдкрд░ рдбреЗрдЯрд╛рдЯрд╛рдЗрдк рд╕реЗрдЯ рд╣реИ рдФрд░ рдлрд┐рд░ рд▓рд┐рд╕реНрдЯрд╡реНрдпреВ рдбреЗрдЯреЗрдЯрдкреНрд▓реЗрдЯ рдкрд░ рдПрдХ рдЕрд▓рдЧред

рдореБрдЭреЗ рдЙрд╕ рд╕реВрдЪреА рдкрд░ рд╕реНрдкрд╖реНрдЯ рдпрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдпрд╛ рдХрд┐рд╕реА рднреА рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдмрд╛рдзреНрдп рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╣ GC.Collect рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рдзрд┐ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рд╣реИред (рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ GC.Collect рдХреЙрд▓ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдХрдо рд╣реА рд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рд░ рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рдмрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдпрд╣ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддрд╛рдЬрд╝рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред)

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрд╛, рдЕрдЧрд░ рдореИрдВ рдЕрдкрдиреЗ рджреГрд╢реНрдп рдХреЗ рдмреАрдЪ рдЕрдкрдиреЗ рдмрдВрдзрди рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реВрдВред рдореИрдВ рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реВрдВред рд╕реВрдЪреА рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реЛрдиреЗ рдкрд░ рддреНрд░реБрдЯрд┐ рджреВрд░ рд╣реЛ рдЬрд╛рддреА рд╣реИ, (рд▓реЗрдХрд┐рди рд░рд┐рдлреНрд░реЗрд╢рд┐рдВрдЧ рд╕рдВрдХреЗрддрдХ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рддрд╛рдЬрд╝рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд▓ рдХреЗ рдмрд╛рдж рднреА рдЪрд▓рддрд╛ рд░рд╣рддрд╛ рд╣реИ)ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рдореИрдВ рд╕рд╛рдордЧреНрд░реА рдкреГрд╖реНрда рдкрд░ рдбреЗрдЯрд╛рдЯрд╛рдЗрдк рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдбреЗрдЯреЗрдЯрдкреНрд▓реЗрдЯ рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рддреНрд░реБрдЯрд┐ рднреА рджреВрд░ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдореИрдВ рд╕реВрдЪреА рдирд┐рд░реНрдзрд╛рд░рдг IsRefresing рдкрд░ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рджрди рдРрдк рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

  1. рдХрдВрдЯреЗрдВрдЯрдкреЗрдЬ рдкрд░ рдбреЗрдЯрд╛ рдЯрд╛рдЗрдк рд╕реЗрдЯ рдХрд░реЗрдВ
  2. ListView рдореЗрдВ IsRefreshing рдкрд░ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░реЗрдВ
  3. Task.elay (250) рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЗ рдмрд╛рдж GC.Collect рдХреЙрд▓ рдХрд░реЗрдВ; рдореЗрдердб рд░рд┐рдлреНрд░реЗрд╢рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╡рд┐рдзрд┐ рдореЗрдВ

@shoyheim : рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рдзрд╛рд░рдг

@shoyheim : рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рдзрд╛рд░рдг

@mfeingol рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рджрди рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг / рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдордп рдирд┐рдЪреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ ...

@shoyheim : рдХреНрдпрд╛ рддреБрдордиреЗ рдХрднреА рдЗрд╕рдХреЗ рд╕рд╛рде рдХреЛрдИ рднрд╛рдЧреНрдп рд╣реИ?

@mfeingol
рдХреЛрдИ рдЦреЗрдж рдирд╣реАрдВ, рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдЬрдм рднреА рдореИрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд░рд┐рдкреНрд░реЛ рдмрдирд╛рддрд╛ рд╣реВрдВ, рдореИрдВ рдЗрд╕реЗ рдХреНрд░реИрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдкреНрд░реЛрдбрдХреНрд╢рди рдРрдк рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рдФрд░ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд░рд╣рддрд╛ рд╣реИред
рдЕрдм рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕рднреА рд╕рдВрдХрд▓рд┐рдд рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ рдмрд╕ рдЕрдкрдиреА xaml рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд░рдирдЯрд╛рдЗрдо рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдФрд░ рдХреНрд░реИрд╢ рдЧрд╛рдпрдм рд╣реЛ рдЧрдПред
рдореИрдВрдиреЗ рдмрд╣реБрдд рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рд╣реИ рдЬреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд╣реВрдВ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╕реВрдЪреА рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░рдиреЗ, рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП "рд░реАрдлрд╝реНрд░реЗрд╢рд┐рдВрдЧ" рдкрд░ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд▓рд┐рд╕реНрдЯ рд╡реНрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдВрдмрдВрдз рд╣реИред рд╕рдВрдХрд▓рд┐рдд рдмрд╛рдЗрдВрдбрд┐рдВрдЧ ... рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рдордп рдХреЗ рдЖрд╕рдкрд╛рд╕ рджреБрд░реНрдШрдЯрдирд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред

1- рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╕рдВрджрд░реНрдн (рджреЗрдЦреЗрдВ рдореЙрдбрд▓) рдХреА рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдмрджрд▓ рдЬрд╛рддреА рд╣реИред
2- рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдирд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рей- рдЬреАрд╕реА рдХрд╣рддреЗ рд╣реИрдВред

  1. Binding.Apply рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЪрд▓реЗ рдЧрдП рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдпрд╣ InvalidOperationException рдлреЗрдВрдХрддрд╛ рд╣реИред
    рдЖрдк рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЪрд░рдг 4 рдХреЛ рдЗрддрдиреА рджреЗрд░ рд╕реЗ рдХреНрдпреЛрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ Device.BeginInvokeOnMainThread рдореЗрдВ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдореБрдЦреНрдп рдереНрд░реЗрдб рдХреА рдХреНрд░рд┐рдпрд╛ рдХрддрд╛рд░ рдХреА рд╕реВрдЪреА рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред
    рдореИрдВ xf рдХреЛ рдХрд╕реНрдЯрдо PlatformServices рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдЙрд╕ рдЕрдкрд╡рд╛рдж рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдФрд░ рдЕрдм рдХреЛрдИ рджреБрд░реНрдШрдЯрдирд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ 800 рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдлреЗрдВрдХрддрд╛ рд╣реИ! рдирд╖реНрдЯ рдХрд┐рдП рдЧрдП рдкреГрд╖реНрда рдХреЗ рд▓рдЧрднрдЧ рд╕рднреА рдЯрд╛рдЗрдкрд┐рдВрдЧ рдмрдВрдзрди рдХреЗ рд▓рд┐рдП

@ysmoradi : рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдЪрд░рдгреЛрдВ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ рдХреБрдЫ рд╕рдордп рдмрд┐рддрд╛рдпрд╛, рдФрд░ рдореИрдВ рдХрд┐рд╕реА рднреА рдХреНрд░реИрд╢ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рдерд╛ред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдирдореВрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИред

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рднреА рдХрд╣рд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдИ рд╕рд░рд▓ рд░реЗрдкреЛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рдореЗрд░реЗ рдЙрддреНрдкрд╛рджрди рдРрдк рдореЗрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдпрд╣ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рднреА рд╣реЛрддрд╛ рд╣реИред
рдкрд╣рд▓реА рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рдПрдХ рд░реЗрдкреЛ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рдореБрдЭреЗ рдХрдИ рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдХрд▓ рдореИрдВ рдЕрдкрдиреА рдирдИ рдзрд╛рд░рдгрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдФрд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
рдПрдХ рдФрд░ рд╕реБрдЭрд╛рд╡ рдЬреЛ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ: рдореЗрд░реА рдорд╛рдиреНрдпрддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╕рдорд╡рд░реНрддреА рдЬреАрд╕реА рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рджреБрд░реНрдШрдЯрдирд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдврд╝реЗ рд╣реБрдП рдЕрд╡рд╕рд░реЛрдВ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдзрд╛рдЧреЗ рдкрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдзрд╛рдЧреЗ / рдХрд╛рд░реНрдп рдкрд░ рдПрдХ рдореЙрдбрд▓ рдХреЗ рдореЙрдбрд▓ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ Device.BeginInvokeOnMainThread рдореБрдЦреНрдп рдереНрд░реЗрдбреНрд╕ рдХрддрд╛рд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдХреЗрд╡рд▓ рддрднреА рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЗрд╕реЗ рдореБрдЦреНрдп рдереНрд░реЗрдб рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдереНрд░реЗрдб рдкрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдлрд┐рд░ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдФрд░ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдХреБрдЫ рдорд┐рд▓рд╛ рд╣реИ, рдФрд░ рдореИрдВ рдХрд▓ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рдореИрдВ рд╕рдорд╡рд░реНрддреА рдЬреАрд╕реА рд╕рдХреНрд╖рдо рд╣реИред рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдЬрд┐рд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЙрд╕рдХрд╛ рд╕реНрдирд┐рдкреЗрдЯ рдпрд╣ рдХрд░рддрд╛ рд╣реИ:

            Page1 page = new Page1();
            await this.Navigation.PushModalAsync(page);
            await Task.Run(() => { page.TXT = "Foo"; });
            await this.Navigation.PopModalAsync();

            GC.Collect();
            GC.WaitForPendingFinalizers();

            GC.Collect();
            GC.WaitForPendingFinalizers();

TXT рдкреЗрдЬ 1 рдкрд░ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рд╣реИ, рдЬрд┐рд╕реЗ BindableProperty рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреЗрдЬ 1 рд╕рдВрдХрд▓рд┐рдд рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдлрд┐рд░ рднреА рдирд╕реАрдм рдирд╣реАрдВред

рдореЗрд░реЗ рдкреНрд░реЛрдбрдХреНрд╢рди рдРрдк рдореЗрдВ рднреА рдпрд╣реА рдореБрджреНрджрд╛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдпрд╣рд╛рдБ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред X рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдердХрд╛рдК рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреЗ рдмрд╛рдж: рдкреНрд░рджрд░реНрд╢рди рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣рд░ рдЬрдЧрд╣ рдбреЗрдЯрд╛рдЯрд╛рдЗрдк, рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рдХрд┐ рдореИрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдХрд╛рд░рдг рдЙрди рд╕рднреА рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЛрдорд╛рдВрдЪрд┐рдд рд╣реВрдВред

рдЕрдЧрд░ рдореИрдВ рдПрдХ рдХрд╛рдо рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдмрдВрдзрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдЗрд╕реЗ рд░рд┐рдкреНрд░реЛ рдРрдк рдХреЗ рд╕рд╛рде рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛ред

рдиреЛрдЯ: рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдЬрдм рдореИрдВрдиреЗ рднреА рд╕рдВрдкреАрдбрд╝рд┐рдд рд▓реЗрдЖрдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдерд╛ред рд╕рдВрднрд╡рдд: рдпрд╣ рд╕рдВрдпреЛрдЧ рдмрд╣реБрдд рд╣реА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИред

рд╕рдВрдХрд▓рд┐рдд рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде MVVM рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдРрдк рдХреЛ рдЕрднреА рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдЕрдм рд╡рд╣реА рддреНрд░реБрдЯрд┐ рд╣реЛ рд░рд╣реА рд╣реИред
рдирд╡реАрдирддрдо Xamarin.Forms рдЪрд▓ рд░рд╣рд╛ рд╣реИ: 4.2.0.848062

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде:
image

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд░реЗрдкреНрд░реЛ рдЪрд░рдг рдирд╣реАрдВ рд╣реИрдВ (рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рджрд┐рди рдХреЗ рд▓рд┐рдП рдмреАрдЯрд╛ рдореЗрдВ рд╣реИ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА AppCenter рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЛ рд░рд┐рдкреЛрд░реНрдЯ рд╣реИрдВ)ред
рдРрдк рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд░рд┐рдкреНрд░реЛ рдЪрд░рдгреЛрдВ рдХреЗ рдмрд┐рдирд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдкреВрд░реА рддрд╕реНрд╡реАрд░ рдирд╣реАрдВ рд╕рдордЭ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЖрд╕рд╛рди рд╣рд▓ рдирд╣реАрдВ рд╣реИ, рдмрд╕ рдЕрдирдкреНрд▓рдЧ рдХрд░реЗрдВ рдФрд░ рдЬрдм рд▓рдХреНрд╖реНрдп рдЬреАрд╕реАрдб рд╣реЛ рдЬрд╛рдП, рддреЛ рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВ, рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ DO_NOT_CHECK_FOR_BINDING_REUSE рдХреЗрд╡рд▓ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ? рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдХреИрд╕реЗ рдлреЗрдВрдХрдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

@fmanseau : рдореЗрд░рд╛ рдПрдХ рд╣реА рд╡рд┐рдЪрд╛рд░ рд╣реИред @PureWeen?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рд┐рдЬреНрдо рдХреЗ рд░реЗрдкреЛ рдореЗрдВ рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рдореБрджреНрджрд╛ рд░реЗрдкреНрд░реЛ рд╕реНрдЯреЗрдкреНрд╕ рд╣реИ (рдЗрд╕реЗ рдкреНрд░рд┐рдЬреНрдо рдРрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд┐рдирд╛ рд╕рдорд╛рди рдкреИрдЯрд░реНрди рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ)ред

https://github.com/PrismLibrary/Prism/issues/1688

@StephaneDelcroix @ Kingces95 @wachs
рдЖрдк рд▓реЛрдЧ TypedBinding рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдкреАрдЫреЗ рд▓рдЧ рд░рд╣реЗ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХрдИ рджреЗрд╡рддрд╛ рд╡рд╣рд╛рдБ (рдореЗрд░реЗ рд╕рд╣рд┐рдд) рдЕрдм рдЙрдирдХреЗ рдРрдк рдХреНрд░реИрд╢ рд╣реЛ рдЧрдП рд╣реИрдВ рдФрд░ InvalidOperationException рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХреЗ рдЧрдП TypedBinding ред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @samhouts рдЙрд╕рдХреА рдзрд╛рд░рдгрд╛ рдореЗрдВ рд╕рд╣реА рд╣реИ, рдХрд┐ GC рдХреЗ рдмрд╛рдж рдореЗрдВ рдФрд░ target TypedBinding рдирд┐рдХрд╛рд▓ рджреЗрддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдРрдк рдореЗрдВ рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмрдбрд╝рд╛ рдорд╛рдорд▓рд╛ рд╣реИ) ListView рдХрдИ рдЬрдЯрд┐рд▓ DataTemplates , TypedBinding рдПрдХ InvalidOperationException рдлреЗрдВрдХрддрд╛ рд╣реИ рдЬреЛ рдХрднреА рдкрдХрдбрд╝рд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ рд╕рдВрднрд╡рддрдГ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░) ??) рдЗрд╕ рддрд░рд╣:

рдЯрд╛рдЗрдкреНрдбрдмрд╛рдЗрдВрдбрд┐рдВрдЧ 2[TSource,TProperty].Apply (System.Boolean fromTarget) System.InvalidOperationException: Operation is not valid due to the current state of the object. Stack traces TypedBinding 2 [TSource, TProperty] .Apply (System.Boolean fromTarget)
TypedBinding`2 + PropertyChangedProxy [TSource, TProperty]редb__16_0 ()
рдереНрд░реЗрдб + рд░рдирдиреЗрдмрд▓рдЗрдореНрдкреНрд▓реАрдорд░ред рд░реМрди ()
IRunnableInvoker.n_Run (System.IntPtr jnienv, System.IntPtr рдЬрдирддрдВрддреНрд░)
(рд░реИрдкрд░ рдбрд╛рдпрдиреЗрдорд┐рдХ-рдореЗрдердб) Android.Runtime.DynamicMethodNameCounter.43 (intptr, intptr)

рдЕрдм @mfeingol рдпрдереЛрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреВрдЫрддрд╛ рд╣реИ рдХрд┐ InvalidOperationException рдХреНрдпреЛрдВ рд╣реИ рдЬреЛ рдЗрд╕ рджреБрд░реНрдШрдЯрдирд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд▓рдХреНрд╖реНрдп рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рдереА, рдХреНрдпреЛрдВ рдПрдХ рдХрдордЬреЛрд░ рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ?

рдореИрдВ рд╕реНрд╡рдпрдВ .NET 3.0 рд╕реЗ WPF рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВ рдФрд░ рдЬрд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рдХрд╛рд░рдг рдХрднреА рдХреЛрдИ рджреБрд░реНрдШрдЯрдирд╛ рдирд╣реАрдВ рд╣реБрдИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рддреЛ рдореЗрд░рд╛ рд╕рд╡рд╛рд▓:
рдХреНрдпрд╛ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рд╣реИ рдХрд┐ TypedBinding рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрддрд╛ рд╣реИ рдФрд░ рдЕрдЧрд░ рдЗрд╕реЗ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рддреЛ рд▓рдХреНрд╖реНрдп рдХреЛ рдЕрдирджреЗрдЦрд╛ рдирд╣реАрдВ рдХрд░рддрд╛?

рдпрд╛ рд╢рд╛рдпрдж рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╣реА рд╕рднреА рдмрд╛рдзреНрдпрдХрд╛рд░реА рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдкрдХрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╣рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЙрдиреНрд╣реЗрдВ рдирд┐рдЧрд▓рдиреЗ рдпрд╛ рдЙрдЪрд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП?

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рдЙрддреНрдкрд╛рджрди рдРрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрдЧ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдореИрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдордзреНрдпрд╕реНрде Xamarin.Forms рд░рд┐рд▓реАрдЬ рдмрдирд╛рддрд╛ рд╣реВрдВ рдЬреЛ рдЗрд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдореИрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рдХреЗ рдХреНрдпрд╛ рдЕрд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рднрд╛рд╡ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ!

@ рдмреНрд░реБрдЬрд╝рдХреЛрд╡рд╕реНрдХреА - рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рднреА рд░реБрдЪрд┐ рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, @StephaneDelcroix @ Kingces95 @wachs , рдореИрдВ рдПрдХ рдзреНрд╡рдЬ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ
DO_NOT_CHECK_FOR_BINDING_REUSE
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╣реИ?

рдореИрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХреА рддрд░рд╣ рд╕рд╛рде Xamarin.Forms рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛ DO_NOT_CHECK_FOR_BINDING_REUSE рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ true рдЗрд╕ рдмрдЧ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗред
рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдкреАрдЫреЗ рдХреНрдпрд╛ рд╡рд┐рдЪрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ? рдЗрд╕ рдзреНрд╡рдЬ рдХреЗ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣реИ рдирд╛?

рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ ListView рдФрд░ DataTemplateSelector рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдзрд╛рд░рдг ContentPage рдореЗрдВ рдореЗрд░реЗ рд╕рд╛рде рд╣реБрдЖ рд╣реИред
рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ?
рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЦреБрд▓реА рд╣реИ рддреЛ рд╕рдВрдХрд▓рд┐рдд рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ ??
https://docs.microsoft.com/es-es/xamarin/xamarin-forms/app-fundamentals/data-binding/compiled-bindings

@mrjavicho : рдХреЛрдИ рднреА рдореМрдХрд╛

рдореИрдВ рдЗрд╕ рдирдореВрдиреЗ рдХреЗ рд╕рд╛рде рдЕрдХреНрд╕рд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред
https://github.com/usausa/TypedBindingIssue

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдПрдБ рдФрд░ рдЯреЗрд╕реНрдЯ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рдЯрд┐рдкреНрдкрдгреА рдХреЛ MainPage.Cleanup () рдореЗрдВ рд╣рдЯрд╛ рджреЗрдВ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред

рдпрд╣рд╛рдБ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдореИрдВ @usausa рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдпрд╣ рдирд╣реАрдВ рдмрддрд╛ рд╕рдХрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдКрдкрд░ рдЬреИрд╕рд╛ рд╣реА рдореБрджреНрджрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдореБрджреНрджрд╛ рд╣реИ:

    0x16 in Xamarin.Forms.Internals.TypedBinding<TypedBindingIssueApp.View1ViewModel,string>.Apply at D:\a\1\s\Xamarin.Forms.Core\TypedBinding.cs:99,5  C#  Annotated Frame
    0x7 in Xamarin.Forms.Internals.TypedBinding<TypedBindingIssueApp.View1ViewModel,string>.PropertyChangedProxy.<OnPropertyChanged>b__16_0 at D:\a\1\s\Xamarin.Forms.Core\TypedBinding.cs:277,31   C#  Annotated Frame
    0x29 in Xamarin.Forms.DispatcherExtensions.Dispatch at D:\a\1\s\Xamarin.Forms.Core\DispatcherExtensions.cs:53,6 C#  Annotated Frame
    0x3F in Xamarin.Forms.Internals.TypedBinding<TypedBindingIssueApp.View1ViewModel,string>.PropertyChangedProxy.OnPropertyChanged at D:\a\1\s\Xamarin.Forms.Core\TypedBinding.cs:277,5    C#  Annotated Frame
    0x15 in Xamarin.Forms.BindingExpression.WeakPropertyChangedProxy.OnPropertyChanged at D:\a\1\s\Xamarin.Forms.Core\BindingExpression.cs:645,6    C#  Annotated Frame
>   0x14 in TypedBindingIssueApp.NotificationObject.RaisePropertyChanged at C:\Operations\Build\External\TypedBindingIssue\TypedBindingIssueApp\TypedBindingIssueApp\NotificationObject.cs:13,13    C#  Symbols loaded.
    0x5D in TypedBindingIssueApp.LongLifecycleModel.Next at C:\Operations\Build\External\TypedBindingIssue\TypedBindingIssueApp\TypedBindingIssueApp\LongLifecycleModel.cs:19,13    C#  Symbols loaded.
    0x2A in TypedBindingIssueApp.MainPage.Button_OnClicked at C:\Operations\Build\External\TypedBindingIssue\TypedBindingIssueApp\TypedBindingIssueApp\MainPage.xaml.cs:29,17   C#  Symbols loaded.
    0x6 in System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.InvokeMoveNext at /Users/builder/jenkins/workspace/archive-mono/2019-08/android/release/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1092,17   C#  Annotated Frame
    0x73 in System.Threading.ExecutionContext.RunInternal at /Users/builder/jenkins/workspace/archive-mono/2019-08/android/release/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:968,17   C#  Annotated Frame
    0x4 in System.Threading.ExecutionContext.Run at /Users/builder/jenkins/workspace/archive-mono/2019-08/android/release/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:910,13    C#  Annotated Frame
    0x32 in System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run at /Users/builder/jenkins/workspace/archive-mono/2019-08/android/release/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1073,25 C#  Annotated Frame
    0x6 in System.Threading.Tasks.SynchronizationContextAwaitTaskContinuation.<>c.<.cctor>b__7_0 at /Users/builder/jenkins/workspace/archive-mono/2019-08/android/release/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/TaskContinuation.cs:379,78  C#  Annotated Frame
    0xC in Android.App.SyncContext. C#  Annotated Frame

рд░реЗрдкреНрд░реЛ рд╣рд╛рдЬрд┐рд░ рд╣реИ! рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦреА рдереА рдХрд┐ рджреБрд░реНрдШрдЯрдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдордп рдкрд░ рд╣реЛрддреА рд╣реИ, рдХрднреА-рдХрднреА рдпрд╣ рдмрдЯрди рдХреЛ рдХрдИ рдмрд╛рд░ рджрдмрд╛рдХрд░ рдФрд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ (рд▓рдЧрд╛рддрд╛рд░ 29 рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдмрд╛рдж):
typedbindingrepro

рдмрд╕ рдкреАрд╕реА рдШрдЯрдирд╛ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ 80 рдмрд╛рд░ рдмрдврд╝рд╛рдПрдВ:
c# for (var i = 0; i < 80; i++) RaisePropertyChanged(nameof(Entity));

рдпрд╣ рдбрд┐рд╕реНрдкреИрдЪрд░ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╢реЗрдбреНрдпреВрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рдлрд▓рддрд╛ рджрд░ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред

рдЬрдм View1 рдФрд░ View2 рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП XAML рд╕рдВрдХрд▓рди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ BindingExpression.cs рдореЗрдВ NullReferenceException рдлреЗрдВрдХрд╛ рдЧрдпрд╛ рд╣реИ:

image

рдЕрднреА рднреА рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ ...

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

leobragatti picture leobragatti  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mattregul picture mattregul  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sonic1015 picture sonic1015  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

fazil1987 picture fazil1987  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Papirosnik picture Papirosnik  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ