рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 7 рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рд╕реЗ рдЖрдЦрд┐рд░ рддрдХ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВред рднрд╛рдЧ 10. рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛, рдбреЗрдЯрд╛ рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдирд╛

рдкрд┐рдЫрд▓рд╛ рд╣рд┐рд╕реНрд╕рд╛

рдЗрд╕ рднрд╛рдЧ рдореЗрдВ рдЖрдк рд╕реАрдЦреЗрдВрдЧреЗ:

рдореВрд▓реНрдп рд░реВрдкрд╛рдВрддрд░рдг


рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рднрд╛рдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдХрдирд╡рд░реНрдЯрд░ рд╕реЗрдЯрд┐рдВрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдмрд╛рдзреНрдп рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рдорд╛рди рдХрдирд╡рд░реНрдЯрд░рдкреИрд░рдореАрдЯрд░ рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдирд┐рдореНрди XAML рдХреЛрдб рджрд┐рдирд╛рдВрдХ TextBlock рдХреЗ рд▓рд┐рдП рдХрдирд╡рд░реНрдЯрд░ рдФрд░ ConverterParameter рджрд┐рдЦрд╛рддрд╛ рд╣реИред
< TextBlock Style ="{StaticResource SummaryStyle}" Text ="{Binding Date, Converter={StaticResource StringFormatter}, ConverterParameter=\{0:d\} }" Width ="105" TextWrapping ="Wrap" /> * This source code was highlighted with Source Code Highlighter .
  1. < TextBlock Style ="{StaticResource SummaryStyle}" Text ="{Binding Date, Converter={StaticResource StringFormatter}, ConverterParameter=\{0:d\} }" Width ="105" TextWrapping ="Wrap" /> * This source code was highlighted with Source Code Highlighter .
  2. < TextBlock Style ="{StaticResource SummaryStyle}" Text ="{Binding Date, Converter={StaticResource StringFormatter}, ConverterParameter=\{0:d\} }" Width ="105" TextWrapping ="Wrap" /> * This source code was highlighted with Source Code Highlighter .
  3. < TextBlock Style ="{StaticResource SummaryStyle}" Text ="{Binding Date, Converter={StaticResource StringFormatter}, ConverterParameter=\{0:d\} }" Width ="105" TextWrapping ="Wrap" /> * This source code was highlighted with Source Code Highlighter .
< TextBlock Style ="{StaticResource SummaryStyle}" Text ="{Binding Date, Converter={StaticResource StringFormatter}, ConverterParameter=\{0:d\} }" Width ="105" TextWrapping ="Wrap" /> * This source code was highlighted with Source Code Highlighter .

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореВрд▓реНрдп рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдЖрдкрдХреЛ рдордирдорд╛рдиреЗ рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЛ рдмрд╛рдВрдзрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рд╕рдВрдкрддреНрддрд┐ рдПрдХ рдЕрд╕рдВрдЧрдд рдкреНрд░рдХрд╛рд░ рдХреА рд╣реЛ рдпрд╛ рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рди рд╣реЛред рдЖрдк рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЧреБрдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдмрд╕ рдЕрдиреНрдп рдЧреБрдгреЛрдВ рдХреЛ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд░реВрдкрд╛рдВрддрд░рдг рдпрд╛ рд╕реНрд╡рд░реВрдкрдг рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдЖрдкрдХреЗ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХреЛ рдЙрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдореВрд▓реНрдп рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдмрдирд╛рдХрд░, рдЖрдк рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдФрд░ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрднреНрдпрд╛рд╡реЗрджрди рджреЛрдиреЛрдВ рд╕реЗ рд░реВрдкрд╛рдВрддрд░рдг рдХреЛрдб рдХреЛ рдЕрд▓рдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рдХрдирд╡рд░реНрдЯрд░ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдПрдХ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдПрдХ рд╡рд╕реНрддреБ рдХрд╛ рдореВрд▓реНрдп рд╣реИред рдирд┐рдореНрди XAML рдХреЛрдб StringFormatter рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ "StringFormatter" рдирд╛рдордХ StaticResource рдХреЗ рд░реВрдк рдореЗрдВ рдЧреНрд░рд┐рдб рдХреЛ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рддрд╛ рд╣реИред
  1. < рдЧреНрд░рд┐рдбред рд╕реНрд░реЛрдд >
  2. < рд╕реНрдерд╛рдиреАрдп: StringFormatter x: Key = "StringFormatter" />
  3. </ рдЧреНрд░рд┐рдбред рд╕реНрд░реЛрдд >
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдореВрд▓реНрдп рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, StringFormatter рд╡рд░реНрдЧ рдХреЛ IValueConverter рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдХрдиреНрд╡рд░реНрдЯ рдФрд░ ConvertBack рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ OneWay рд╣реИ, рдЗрд╕рд▓рд┐рдП StringFormatter рд╡рд░реНрдЧ рдХреЛ рдХреЗрд╡рд▓ Convert рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ String.Format рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
  1. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ StringFormatter: IValueConverter
  2. {
  3. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрдиреНрд╡рд░реНрдЯ ( рдСрдмреНрдЬреЗрдХреНрдЯ рд╡реИрд▓реНрдпреВ , рдЯрд╛рдЗрдк рдЯрд╛рд░рдЧреЗрдЯ рдЯрд╛рдЗрдк, рдСрдмреНрдЬреЗрдХреНрдЯ рдкреИрд░рд╛рдореАрдЯрд░,
  4. рд╕рдВрд╕реНрдХреГрддрд┐рдЗрдиреНрдлреЛ рдХрд▓реНрдЪрд░)
  5. {
  6. // рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореВрд▓реНрдп рдкреНрд░рд╛рд░реВрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВ
  7. var formatString = рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ ;
  8. рдЕрдЧрд░ ( рд╕реНрдЯреНрд░рд┐рдВрдЧ .IsNullOrEmpty (formatString))
  9. {
  10. рд╡рд╛рдкрд╕реА рд╕реНрдЯреНрд░рд┐рдВрдЧ .Format (рд╕рдВрд╕реНрдХреГрддрд┐, рд╕реНрд╡рд░реВрдкрдг, рдореВрд▓реНрдп );
  11. }
  12. // рдпрджрд┐ рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢реВрдиреНрдп рдпрд╛ рд░рд┐рдХреНрдд рд╣реИ, рддреЛ рдмрд╕ ToString () рдХреЙрд▓ рдХрд░реЗрдВ
  13. // рдореВрд▓реНрдп рдкрд░ред
  14. рд╡рд╛рдкрд╕реА рдорд╛рди .ToString ();
  15. }
  16. // рдПрдХрддрд░рдлрд╛ рдмрдВрдзрди рдкрд░ рд╡рд╛рдкрд╕ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
  17. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ ConvertBack ( рдСрдмреНрдЬреЗрдХреНрдЯ рдорд╛рди , рдкреНрд░рдХрд╛рд░ рд▓рдХреНрд╖реНрдп рдЯрд╛рдЗрдк,
  18. рдСрдмреНрдЬреЗрдХреНрдЯ рдкреИрд░рд╛рдореАрдЯрд░, CultureInfo рд╕рдВрд╕реНрдХреГрддрд┐)
  19. {
  20. рдирдИ NotImplementedException () рдлреЗрдВрдХреЗрдВ;
  21. }
  22. }
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдирд┐рдореНрди рдЫрд╡рд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рджрд┐рдЦрд╛рддреА рд╣реИ рдЬрдм StringFormatter рдХрдирд╡рд░реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдЬрдм рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЫрд╡рд┐

ZeroFormatter.cs рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдорд╛рди рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдгред рдлреНрдпреВрд▓ рдЯреНрд░реИрдХрд░ рд╢реВрдиреНрдп рдорд╛рдиреЛрдВ рдХреЛ рд░рд┐рдХреНрдд рддрд╛рд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ZeroFormatter рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрдм рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рджреМрд░рд╛рди рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирдИ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдгрд╛рдВрдХ рдЧреБрдг рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрди рдЧреБрдгреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рдпрдВрддреНрд░рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХрд┐рд╕реА рдореВрд▓реНрдп рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЦрд╛рд▓реА рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рдЪрд╛рд╣рд┐рдПред

рдбреЗрдЯрд╛ рдХреНрд▓рд╛рд╕реЗрд╕ рдмрдирд╛рдирд╛


рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХреЗрдВ, рдЖрдкрдХреЛ рдЖрдорддреМрд░ рдкрд░ рдбреЗрдЯрд╛ рдХреЛ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЖрдк рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рдЖрдк ADO.NET рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдпрд╛ WCF рдбреЗрдЯрд╛ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрддреНрдкрдиреНрди рдбреЗрдЯрд╛ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд░рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕рд╛рджреЗ рдкреБрд░рд╛рдиреЗ рд╕реАрдПрд▓рдЖрд░ рдСрдмреНрдЬреЗрдХреНрдЯ (POCO - рд╕рд╛рджреЗ рдкреБрд░рд╛рдиреЗ рд╕реАрдПрд▓рдЖрд░ рдСрдмреНрдЬреЗрдХреНрдЯ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрди рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдЕрдХреНрд╕рд░ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдФрд░ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЧреБрдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИред

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

XAML рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЙрдбрд▓-рд╡реНрдпреВ-рд╡реНрдпреВрдореЙрдбрд▓ (MVVM) рд╣реИред рдЪреВрдВрдХрд┐ рдлреНрдпреВрд▓ рдЯреНрд░реИрдХрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рд╣реИ, рдпрд╣ рдПрдорд╡реАрд╡реАрдПрдо рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд▓реЗрдЦ рдЗрд╕ рдореЙрдбрд▓ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрди рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдПрдХ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдкреИрдЯрд░реНрди рдФрд░ рдкреНрд░рдерд╛рдУрдВ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 7 рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЧрд╛рдЗрдб рдореЗрдВ рдореЙрдбрд▓-рд╡реНрдпреВ-рд╡реНрдпреВрдореЙрдбрд▓ рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ ред

рдлреНрдпреВрд▓ рдЯреНрд░реИрдХрд░ рдПрдХ рд╕рд░рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдФрд░ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП CLR рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдирд┐рдореНрди рдЫрд╡рд┐ рдлреНрдпреВрд▓ рдЯреНрд░реИрдХрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрд╛рд░ , рдлрд┐рд▓рдЕрдк рдФрд░ рдХрд╛рд░рдбреЗрдЯрд╛рд╕реНрдЯреЛрд░ рдХрдХреНрд╖рд╛рдПрдВ рджрд┐рдЦрд╛рддреА рд╣реИ ред рдЖрд╡реЗрджрди рдореЗрдВ рдЕрдиреНрдп рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпреЗ рдореБрдЦреНрдп рд╣реИрдВред

рдЫрд╡рд┐

рдХрд╛рд░ рд╡рд░реНрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдлрд┐рд▓реНрдк рдХреНрд▓рд╛рд╕ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдИрдВрдзрди рднрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред рд╕рднреА рдХрд╛рд░ рдФрд░ рдлрд┐рд▓рдЕрдк рд╕рдВрдкрддреНрддрд┐рдпрд╛рдВ рд╕рд░рд▓ рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░ рд╣реИрдВ, рдХрд╛рд░ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рдеред рдлрд┐рд▓рдЕрдкрд╣рд┐рд╕реНрдЯрд░ рд╕рдВрдкрддреНрддрд┐, рдЬреЛ рд░рд┐рдлрд┐рд▓ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИред CarDataStore рдХреНрд▓рд╛рд╕ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд╛рд░ рдФрд░ рдлрд┐рд▓рдЕрдк рдбреЗрдЯрд╛ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдФрд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдкреЗрдЬ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдмрд╛рдзреНрдп рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрд╛рд░ рдФрд░ рдлрд┐рд▓рдЕрдк рдХреНрд▓рд╛рд╕реЗрд╕ INotifyPropertyChanged рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред INotifyPropertyChanged рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд╣рдореЗрд╢рд╛ рдЕрджреНрдпрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдбреЗрдЯрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓рд╛ рдЦрдВрдб, "рдбреЗрдЯрд╛ рдореИрдкрд┐рдВрдЧ" рджреЗрдЦреЗрдВред

рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдмрджрд▓реЗрдВ


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

рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ INotifyPropertyChanged рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдПрдХ рдмрджрд▓рд╛рд╡ рдХреА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрддрдиреЗ рд╕рд╛рд░реЗ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ рдорд╛рдорд▓реЗ рдореЗрдВ INotifyPropertyChanged рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рд░рд▓ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ Car.cs рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
  1. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реНрд░реЗрдгреА рдХреА рдХрд╛рд░: INotifyPropertyChanged
  2. {
  3. рдирд┐рдЬреА рд╕реНрдЯреНрд░рд┐рдВрдЧ _name;
  4. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдо
  5. {
  6. { рд░рд┐рдЯрд░реНрди _name рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ ; }
  7. рд╕реЗрдЯ
  8. {
  9. _name = рдореВрд▓реНрдп ;
  10. NotifyPropertyChanged ( "рдирд╛рдо" );
  11. }
  12. }
  13. // ... рдЕрдиреНрдп рдЧреБрдг ...
  14. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдШрдЯрдирд╛
  15. рдирд┐рдЬреА рд╢реВрдиреНрдп NotifyPropertyChanged ( рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЧреБрдгрдирд╛рдо)
  16. {
  17. рдкреНрд░реЙрдкрд░реНрдЯреАрдЪреЗрдВрдЬреНрдб ( рдпрд╣ , рдирдпрд╛ рдкреНрд░реЙрдкрд░реНрдЯреАрдЪреЗрдВрдбреЗрд╡реЗрдВрдЯрдПрд░рдЧреНрд╕ (рдкреНрд░реЙрдкрд░реНрдЯреАрдиреЗрдо));
  18. }
  19. }
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЬрдм рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рдмрд╛рдВрдзрддреЗ рд╣реИрдВ, рддреЛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЗрдВрдЬрди рдкреНрд░реЙрдкрд░реНрдЯреАрдЪреЗрдВрдЬреНрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрд╡реЗрдВрдЯ рдХреЛ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд░рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЬрдм рднреА рдкреНрд░реЙрдкрд░реНрдЯреА рд╡реИрд▓реНрдпреВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдЖрдП рддреЛ рдпрд╣ рд╕рднреА рдмрд╛рдЙрдВрдб рдХрдВрдЯреНрд░реЛрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХреЗред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ PropertyChanged рдШрдЯрдирд╛ рдПрдХ рдЦрд╛рд▓реА рдкреНрд░рддрд┐рдирд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдЯреНрд░рд┐рдЧрд░ рдХреА рдЬрд╛рддреА рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рд╕рдХреЗ рдХрд┐ рдпрд╣ рдХрднреА рднреА рдЕрд╢рдХреНрдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рд╕реЗ NotifyPropertyChanged рд╡рд┐рдзрд┐ рдХрд┐рд╕реА рднреА рдЧреНрд░рд╛рд╣рдХ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рдмрд╛рд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдШрдЯрдирд╛ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЖрдк рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рджреЛрд╣рд░рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдмрджрд▓реЗрдВ


рдХрд┐рд╕реА рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рд╕реВрдЪрдирд╛рдУрдВ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдпрд╛ рд╣рдЯрд╛рдирд╛, рд╕рдВрдЧреНрд░рд╣ рдХреЛ INotifyCollectionChanged рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдУрдмреНрдЬрд░реНрд╡реИрдмрд▓ рдХреЙрд▓реЗрдХреНрд╢рди рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣ рд╣реИ рдЬреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдСрдмреНрдЬрд╝рд░реНрд╡реЗрдмрд▓ рдХреИрд▓реЛрд▓реЗрд╢рди, рдЗрдиреЛрдЯрд┐рдлрд╝рдкреНрд░реЛрдкрд░реЗрдЯреА рдЪреЗрдВрдЬреЗрдб рдФрд░ рдЗрдиреЛрдЯрд┐рдлрд╝рд╛рдЗрдХ рдХреЛрд▓реЛрдирд┐рдпрдирдЪреЗрдВрдЬ рджреЛрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рд╕реВрдЪрдирд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдЖрдЗрдЯрдо рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдСрдмреНрдЬрд╝рд░реНрд╡реЗрдмрд▓ рдХреЙрд▓реЗрдХреНрд╢рди рдореЗрдВ рд░рдЦреЗрдВред рд╡реЗ рддрддреНрд╡ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдиреЗ рдПрдХ рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓ рдХреЙрд▓реЗрдХреНрд╢рди рдореЗрдВ рд░рдЦрд╛ рдерд╛, рдЙрдиреНрд╣реЗрдВ INotifyPropertyChanged рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрддреНрддрд┐ рдкрд░рд┐рд╡рд░реНрддрди рд╕реВрдЪрдирд╛рдПрдВ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдлреНрдпреВрд▓ рдЯреНрд░реИрдХрд░ рдлрд┐рд▓рдЕрдкрд╣рд┐рд╕реНрдЯрд░реЛрди рдирд╛рдордХ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдИрдВрдзрди рднрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред FillupHistory рдлрд┐рд▓рдк рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдПрдХ рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓рдХреЛрд▓рд┐рд▓реЗрд╢рди рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ Car.cs рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
  1. рдкрдмреНрд▓рд┐рдХ рдСрдмреНрдЬрд╝рд░реНрд╡реЗрдмрд▓ рдХреЙрд▓реЗрдХреНрд╢рди <Fillup> FillupHistory
  2. {
  3. get { рд╡рд╛рдкрд╕реА _fillupHistory; }
  4. рд╕реЗрдЯ
  5. {
  6. _fillupHistory = рдореВрд▓реНрдп ;
  7. рдЕрдЧрд░ (_fillupHistory! = null )
  8. {
  9. _fillupHistory.CollectionChanged + = рдкреНрд░рддрд┐рдирд┐рдзрд┐
  10. {
  11. NotifyPropertyChanged ( "рдПрд╡рд░реЗрдЬрдлреБрд▓ рдПрдлрд┐рд╢рд┐рдПрдВрд╕реА" );
  12. };
  13. }
  14. NotifyPropertyChanged ( "FillupHistory" );
  15. NotifyPropertyChanged ( "рдПрд╡рд░реЗрдЬрдлреБрд▓ рдПрдлрд┐рд╢рд┐рдПрдВрд╕реА" );
  16. }
  17. }
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

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

рдЕрдЧрд▓рд╛ рднрд╛рдЧ

Source: https://habr.com/ru/post/In118330/


All Articles