ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

Установка привязок Π³Ρ€Π°Π½ΠΈΡ† элСмСнтов управлСния

Настройку производят Π½Π° этапС создания Ρ„ΠΎΡ€ΠΌΡ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта управлСния ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… элСмСнтов. ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ΅ доступны элСмСнты управлСния любого Ρ‚ΠΈΠΏΠ°.

БущСствуСт Π΄Π²Π° Π²ΠΈΠ΄Π° привязок: ручная (простая ΠΈ слоТная привязка Π³Ρ€Π°Π½ΠΈΡ† элСмСнтов) ΠΈ автоматичСская привязки (Π°Π²Ρ‚ΠΎ-привязка).

ΠŸΡ€ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΉ привязкС производится установка ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ привязок. ΠŸΡ€ΠΈ автопривязкС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ привязки зависит ΠΎΡ‚ Π²ΠΈΠ΄Π° элСмСнта управлСния.

Ручная привязка

Настройка привязок производится Π² ΠΎΠΊΠ½Π΅ «ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° Π³Ρ€Π°Π½ΠΈΡ† для элСмСнта …«, запускаСмого ΠΏΠΎ ссылкС Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° свойства ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° Π³Ρ€Π°Π½ΠΈΡ† ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ РасполоТСниС.

ДопускаСтся установка привязок для Π³Ρ€ΡƒΠΏΠΏΡ‹ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… элСмСнтов.

ΠŸΡ€ΠΎΡΡ‚Π°Ρ привязка Π³Ρ€Π°Π½ΠΈΡ†

Настройка привязок производится Π½Π° Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ΅ «ΠŸΡ€ΠΎΡΡ‚ая«.

Π“Ρ€ΡƒΠΏΠΏΠ° Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² ΠΎΠΊΠ½Π° «ΠŸΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ» ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для настройки повСдСния элСмСнта ΠΏΡ€ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Ρ„ΠΎΡ€ΠΌΡ‹.

ДСйствия ΠΏΠΎ настройкС привязки Π² этих Π³Ρ€ΡƒΠΏΠΏΠ°Ρ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹.

ΠŸΡ€ΠΈ простой привязкС элСмСнт ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ привязан ΠΊΠ°ΠΊ ΠΊ самой Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈΠ»ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊ элСмСнтам управлСния Ρ‚ΠΈΠΏΠ° «Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ«.

Π’ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π΅ «Π’ΠΈΠΏ привязки» указываСтся способ привязки:

Π’ΠΎ всСх случаях, ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ привязки, элСмСнт управлСния привязан ТСстко: ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΉ привязкС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ полоТСния Π³Ρ€Π°Π½ΠΈΡ† элСмСнта ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ привязанной Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π½Π΅ происходит.

Аналогично производится настройка повСдСния элСмСнта ΠΏΡ€ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Ρ„ΠΎΡ€ΠΌΡ‹.

Π Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ «Π ΡƒΡ‡Π½Π°Ρ привязка» ΠΎΠΊΠ½Π° «ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° Π³Ρ€Π°Π½ΠΈΡ† для элСмСнта …» ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° автопривязки.

Для сброса всСх привязок Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π‘Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ всС привязки«.

БлоТная привязка Π³Ρ€Π°Π½ΠΈΡ†

ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° производится Π½Π° Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ΅ «Π‘лоТная«. На Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ΅ находятся Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ², Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² Ρ€Π°ΠΌΠΊΠΈ. КаТдая Π³Ρ€ΡƒΠΏΠΏΠ° осущСствляСт привязку ΠΎΠ΄Π½ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ элСмСнта. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ€Π°ΠΌΠΊΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ соотвСтствуСт названию привязываСмой Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ элСмСнта (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π³Ρ€ΡƒΠΏΠΏΠ° «Π›Π΅Π²Π°Ρ Π³Ρ€Π°Π½ΠΈΡ†Π°» ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° привязку Π»Π΅Π²ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ элСмСнта). ДСйствия ΠΏΠΎ настройкС привязки Π² этих Π³Ρ€ΡƒΠΏΠΏΠ°Ρ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹, поэтому рассмотрим настройку Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ привязки ΠΎΠ΄Π½ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹.

Π Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ «ΠŸΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΊ:» ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΡƒΡŽ привязку. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ привязываСтся Π³Ρ€Π°Π½ΠΈΡ†Π°, Π·Π°Ρ‚Π΅ΠΌ указываСтся, ΠΊ ΠΊΠ°ΠΊΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π΅ этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ привязан элСмСнт. Π’ спискС Π³Ρ€Π°Π½ΠΈΡ† Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒΡΡ элСмСнт. Π’ список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ всС элСмСнты управлСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ страницы Ρ„ΠΎΡ€ΠΌΡ‹. Π’ Ρ‚ΠΎΠΌ числС ΠΈ сам привязываСмый элСмСнт управлСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π­Ρ‚ΠΎ дСлаСтся для установки Ρ‚Π°ΠΊΠΈΡ… привязок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ приводят ΠΊ измСнСнию Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² элСмСнта (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ привязки ΠΊ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ), Π½ΠΎ элСмСнт ΠΏΡ€ΠΈ этом ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ привязан ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ элСмСнтам области. Если Π² этом случаС Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ элСмСнт ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ элСмСнту, Ρ‚ΠΎ достаточно Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ привязку Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π΅Π³ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹.

Π Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ «Π‘ΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΈ Π΄ΠΎ:» осущСствляСт Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΡƒΡŽ привязку.

Для сброса всСх привязок Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π‘Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ всС привязки«.

АвтоматичСская привязка Π³Ρ€Π°Π½ΠΈΡ†

ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠΈ, установлСнныС автоматичСски, Π½Π΅ всСгда ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ, поэтому ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ автопривязок Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

Π Π΅ΠΆΠΈΠΌ автопривязок ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΡΡ‚ΡŒ. Если ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ автопривязок трСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ элСмСнты управлСния «ΠΎΡ‚слСТивали» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ„ΠΎΡ€ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ привязки Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

Π’ случаС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ установки свойства Автопривязка Π³Ρ€Π°Π½ΠΈΡ† ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΊΠΎ всСм элСмСнтам Ρ„ΠΎΡ€ΠΌΡ‹, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ установлСн Ρ€Π΅ΠΆΠΈΠΌ «Π ΡƒΡ‡Π½Π°Ρ привязка«, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π° автоматичСская привязка. Если Π΄ΠΎ этого элСмСнт Π±Ρ‹Π» привязан, Π½ΠΎ Ρ„Π»Π°ΠΆΠΎΠΊ «Π ΡƒΡ‡Π½Π°Ρ привязка» Π½Π΅ Π±Ρ‹Π» установлСн, Ρ‚ΠΎ привязки этого элСмСнта Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌ Ρ„ΠΎΡ€ΠΌΡ‹. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ элСмСнта Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΈ Π΅Π³ΠΎ привязки.

Для установки автоматичСской привязки Π³Ρ€Π°Π½ΠΈΡ† установитС свойство Авто-привязка Π³Ρ€Π°Π½ΠΈΡ†.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° привязок

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° элСмСнтов управлСния Windows Forms ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² Visual Studio

Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ прилоТСния, привязывая Π΄Π°Π½Π½Ρ‹Π΅ ΠΊ Windows Forms. Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ эти элСмСнты управлСния с привязкой ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ элСмСнты ΠΈΠ· ΠΎΠΊΠ½Π° источники Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° конструктор Windows Forms Π² Visual Studio.

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠŸΠ΅Ρ€Π΅Π΄ пСрСтаскиваниСм элСмСнтов ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ элСмСнта управлСния, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ привязку. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ значСния ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² зависимости ΠΎΡ‚ Π²Ρ‹Π±ΠΎΡ€Π° самой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ столбца. МоТно Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ значСния. Для Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ свСдСния ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ столбСц привязан ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ элСмСнту управлСния.

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ управлСния BindingSource ΠΈ BindingNavigator

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ BindingSource слуТит Π΄Π²ΡƒΠΌ цСлям. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΎΠ½ прСдоставляСт ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ абстракции ΠΏΡ€ΠΈ привязкС элСмСнтов управлСния ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ управлСния Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊ BindingSource ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ, Π° Π½Π΅ нСпосрСдствСнно ΠΊ источнику Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Π² BindingSource создаСт список этого Ρ‚ΠΈΠΏΠ°.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ BindingSource ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ см. Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ…:

элСмСнт управлСния BindingNavigator прСдоставляСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΌ Windows ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² элСмСнтС управлСния DataGridView

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ПовСдСниС DataGridView ΠΈ BindingNavigator ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² смарт-Ρ‚Π΅Π³ Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ…:

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… элСмСнтах управлСния

ΠŸΡ€ΠΈ привязкС источника Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ подробностям ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ столбСц Π² Π½Π°Π±ΠΎΡ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… привязываСтся ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ элСмСнту управлСния.

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт управлСния ΠΈΠΌΠ΅Π΅Ρ‚ смарт-Ρ‚Π΅Π³. Π­Ρ‚ΠΎΡ‚ Ρ‚Π΅Π³ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ настройки, примСняСмыС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ этому элСмСнту управлСния.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π€ΠΎΡ€ΠΌΠ°, элСмСнты управлСния

ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠΈ элСмСнтов управлСния

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ вСрсии 7.7, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ Π΄ΠΈΠ°Π»ΠΎΠ³Π° Π½Π΅ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎ «Ρ€Π°Π·Π±Ρ€Π΅Π΄Π°Π»ΠΈΡΡŒ» ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ΅, Π² вСрсии 8.0 для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π° Π΄ΠΈΠ°Π»ΠΎΠ³Π° Ρ„ΠΎΡ€ΠΌΡ‹ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° настройка привязок Π³Ρ€Π°Π½ΠΈΡ† ΠΊ Ρ„ΠΎΡ€ΠΌΠ΅ (простая привязка) ΠΈ ΠΊ располоТСнным рядом Π΄Ρ€ΡƒΠ³ΠΈΠΌ элСмСнтам управлСния (слоТная привязка).

Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ «ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° Π³Ρ€Π°Π½ΠΈΡ† для элСмСнта управлСния», Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ свойств элСмСнта управлСния ΠΈΠ· ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ свойств «Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅», ΠΌΠΎΠΆΠ½ΠΎ Π½Π° Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ΅ «ΠŸΡ€ΠΎΡΡ‚ая» ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ простыС привязки ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠŸΡ€ΠΈ простой привязкС элСмСнт ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ привязан ΠΊΠ°ΠΊ ΠΊ самой Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈΠ»ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊ элСмСнтам управлСния Ρ‚ΠΈΠΏΠ° «Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ». ΠŸΡ€ΠΈ этом Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² Π·ΠΎΠ½Ρƒ пСрСсСчСния с привязываСмым элСмСнтом.

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

На Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ΅ «Π‘лоТная» ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ привязки ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠ°ΠΊ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ элСмСнтам, Ρ‚Π°ΠΊ ΠΈ ΠΊ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌ Ρ„ΠΎΡ€ΠΌΡ‹. ΠŸΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹, Π² Π΅Ρ‘ свойствах всСгда установлСно «ΠΠ²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ привязка». БистСма автоматичСски настраиваСт ΠΏΡ€Π°Π²ΠΈΠ»Π° привязок. Если Π² Ρ„ΠΎΡ€ΠΌΠ΅ настройки привязок Π±Ρ‹Π»ΠΈ настроСны ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Ρ‚ΠΎ установка Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… настроСк.

Появились ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ полоТСния элСмСнта Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅, ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎ нСсовпадСнии ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ ΠΈΠ»ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ блиТайшим элСмСнтам управлСния. НаличиС привязки показываСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠΌ ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ, располоТСнным рядом с ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π°ΠΌΠΈ сторон элСмСнта.

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠœΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° элСмСнта управлСния находятся Π² нСпосрСдствСнной близости Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° (Π·ΠΎΠ½Π° Π² +16 пиксСлСй ΠΎΡ‚ блиТайшСй Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ установлСнного элСмСнта).

Π‘ΠΈΠ½ΠΈΠ΅ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСмСщСния элСмСнта управлСния для выравнивания Π΅Π³ΠΎ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π³Ρ€Π°Π½ΠΈΡ† сосСднСго элСмСнта управлСния:

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠšΡ€Π°ΡΠ½Ρ‹Π΅ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСмСщСния элСмСнта управлСния Π² случаС, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ элСмСнт управлСния:

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

Π’Π°ΠΊΠΆΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ выравнивания, измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΈ порядка для Π³Ρ€ΡƒΠΏΠΏΡ‹ элСмСнтов управлСния:

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

Π’ Π΄ΠΈΠ°Π»ΠΎΠ³Π΅ показываСтся Π΄Π΅Ρ€Π΅Π²ΠΎ всСх элСмСнтов управлСния, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Ρ… Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΠ΅.

Π‘ΠΏΡ€Π°Π²Π° ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ элСмСнта управлСния ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π²ΠΈΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° особСнности располоТСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта. ΠŸΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ показываСтся Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ элСмСнта управлСния Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ элСмСнт, отсутствиС выравнивания. Π’ случаС ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ располоТСния Π½Π°Π΄ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌ элСмСнтом показываСтся ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ с красным ΠΏΡƒΠ½ΠΊΡ‚ΠΈΡ€ΠΎΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ.

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Ρ„ΠΎΡ€ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ использованиС Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Π»ΠΈΠ½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слуТат для облСгчСния выравнивания ΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ располоТСния элСмСнтов управлСния Ρ„ΠΎΡ€ΠΌΡ‹. Π’Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ. Для установки Ρ€Π΅ΠΆΠΈΠΌΠ° использования Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Π»ΠΈΠ½ΠΈΠΉ Π² свойствах Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ «Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΈ». Если свойство установлСно, Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ каТдая страница Ρ„ΠΎΡ€ΠΌΡ‹ содСрТит Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΈ ΠΏΠΎ ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€Ρƒ Ρ„ΠΎΡ€ΠΌΡ‹. Π­Ρ‚ΠΎ ΠΊΡ€Π°Π΅Π²Ρ‹Π΅ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΈ. ВсС элСмСнты управлСния Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π½Π° страницС Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ…, установлСнных этими линиями.

На страницС ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΈ (Π² контСкстном мСню Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ «Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ : Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ линию») ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ ΠΏΠΎ Π½ΠΈΠΌ привязку мСста располоТСния элСмСнтов управлСния. Для удалСния Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ Π»ΠΈΠ½ΠΈΠΈ Π² контСкстном мСню Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ «Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ линию».

Если трСбуСтся ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΈ, Π² контСкстном мСню Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ «Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΈ». Π’ этом случаС ΡΠ±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ всС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΈ, Π° ΠΊΡ€Π°Π΅Π²Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€Ρƒ Ρ„ΠΎΡ€ΠΌΡ‹ с отступом.

НСвидимыС Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ создаСт автоматичСски послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ элСмСнта управлСния Π²Ρ‹Ρ€Π°Π²Π½Π΅Π½Ρ‹ ΠΏΠΎ любой ΠΈΠ· Π³Ρ€Π°Π½ΠΈΡ†. НапримСр, Ссли Π΄Π²Π° поля ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π±Ρ‹Π»ΠΈ Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Ρ‹ ΠΏΠΎ Π»Π΅Π²ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π΅, Ρ‚ΠΎ нСвидимая Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰Π°Ρ линия Π±ΡƒΠ΄Π΅Ρ‚ создана вдоль ΠΏΡ€Π°Π²Ρ‹Ρ… Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½Ρ‹Ρ… Π³Ρ€Π°Π½ΠΈΡ† этих ΠΏΠΎΠ»Π΅ΠΉ.

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΎΠ±Ρ…ΠΎΠ΄Π° элСмСнтов управлСния

Для возмоТности ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ настройки порядка ΠΎΠ±Ρ…ΠΎΠ΄Π° элСмСнтов управлСния Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅ свойств Ρ„ΠΎΡ€ΠΌΡ‹ ΡΠ½ΡΡ‚ΡŒ Ρ„Π»Π°ΠΆΠΎΠΊ «ΠΠ²Ρ‚опорядок ΠΎΠ±Ρ…ΠΎΠ΄Π°».

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΈ Π½Π°ΠΆΠΌΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π”Π°», Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ ΠΎΠΊΠ½ΠΎ «ΠΠ°ΡΡ‚Ρ€ΠΎΠΉΠΊΠ° порядка ΠΎΠ±Ρ…ΠΎΠ΄Π°».

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

Π—Π°Π΄Π°Π½ΠΈΠ΅ 6

НастройтС порядок ΠΎΠ±Ρ…ΠΎΠ΄Π° элСмСнтов Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° «ΠΠΊΡ‚ ΠΎΠ± ΠΎΠΊΠ°Π·Π°Π½ΠΈΠΈ услуг».

ОбновлСниС Π΄Π°Π½Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΡ‹

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π’Π°Ρˆ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ устарСл, поТалуйста ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ ваш Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ пройдя ΠΏΠΎ ссылкС www.microsoft.com/download

НуТно Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ посрСдинС Ρ„ΠΎΡ€ΠΌΡ‹, Π΄ΠΎΠ»Π³ΠΎ мучался, ΠΏΠΎΠΊΠ° разобрался с этим ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ.

РСшСниС, понятно, для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ) Π² управляСмых Π·Π° нас Π΄Π΅Π»Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±Ρ‹)

НашСл Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ высоты элСмСнтов. Но, ΠΊΠ°ΠΊ я ΠΈ Π΄ΡƒΠΌΠ°Π», ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ привязками ΠΈ свСрткой.

И нашСл Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ дСйствий. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для своих творчСских Π½ΡƒΠΆΠ΄.
Π’Π°ΠΊ ΠΊΠ°ΠΊ сам Π½Π° Π΄Π°Π½Π½ΡƒΡŽ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ» дСнь для создания ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π½Π΅ ΡΡ‡ΠΈΡ‚Π°ΡŽ Π΅Π΅ Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉ! Π’Π°ΡˆΠ΅ врСмя Ρ†Π΅Π½Π½Π΅Π΅. НадСюсь, ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ пригодится для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ видимости Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅!

ВСстировал Π½Π° 8.2.19.

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ прСдлоТСния

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ свСртка элСмСнтов Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅

К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Ρ†Π΅Π½Π° Π² 5 стартмани ΠΊΠ°ΠΊ Π±Ρ‹ Π½Π°ΠΌΠ΅ΠΊΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΡ€ Ρ‚ΠΎΠ»ΠΊΠ°Π΅Ρ‚ этот Π°Π½Ρ‚ΠΈΠΊΠ²Π°Ρ€ΠΈΠ°Ρ‚ Π² расчСтС Π½Π° Π‘ΡƒΡ€Π°Ρ‚ΠΈΠ½ΠΎ.

Ρƒ мСня пост-ΠΏΡ€Π°Π·Π΄Π½ΠΈΡ‡Π½Ρ‹ΠΉ синдром ΠΈ всС каТСтся ΠΊΡ€ΠΈΠ²Ρ‹ΠΌ, корявым ΠΈ нСдосказанным, проститС.

К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Ρ†Π΅Π½Π° Π² 5 стартмани ΠΊΠ°ΠΊ Π±Ρ‹ Π½Π°ΠΌΠ΅ΠΊΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΡ€ Ρ‚ΠΎΠ»ΠΊΠ°Π΅Ρ‚ этот Π°Π½Ρ‚ΠΈΠΊΠ²Π°Ρ€ΠΈΠ°Ρ‚ Π² расчСтС Π½Π° Π‘ΡƒΡ€Π°Ρ‚ΠΈΠ½ΠΎ.

Ρƒ мСня пост-ΠΏΡ€Π°Π·Π΄Π½ΠΈΡ‡Π½Ρ‹ΠΉ синдром ΠΈ всС каТСтся ΠΊΡ€ΠΈΠ²Ρ‹ΠΌ, корявым ΠΈ нСдосказанным, проститС.

БСйчас с ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌ Π²ΠΎΠΆΡƒΡΡŒ, Π½ΠΎ Ρ‚Π°ΠΌ сразу нСсколько элСмСнтов Π½ΡƒΠΆΠ½ΠΎ ΡΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ, Π° ΠΎΠ½ΠΈ привязанны Π΄Ρ€ΡƒΠ³ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ

Π›Π΅Π²Ρ‹ΠΉ эл1
Π›Π΅Π²Ρ‹ΠΉ эл2

Π­Π» свСртки 1
Π­Π» свСртки 2
Π­Π» свСртки 3
Π­Π» свСртки 4
Π­Π» свСртки 5

И сворачиваСт Π»ΡŽΠ±Ρ‹Π΅ элСмСнты Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ Π²ΠΎΡ‚ ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚, Ρ‚Ρ‡1 которая привязана ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π΅ Π­Π» свСртки 5, Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π· остаётся Π½Π° мСстС, Π° элСмСнты всС Π½Π° Π½Π΅Ρ‘ Π»Π΅Π·ΡƒΡ‚ ), Π½Π΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с Ρ‚Π°ΠΊΠΈΠΌ?

P.S. Π”Π°ΠΆΠ΅ Ссли Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Π΅ΠΉ всё Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠ»ΠΎΡ…ΠΎ) Ρ‚ΠΎΠ»ΡŒΠΊΠΎ пСрСзапуск ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚)

ОбновлСниС 13.05.19 17:00

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ способ добавлСния элСмСнтов ΠΈ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² Π½Π° Ρ„ΠΎΡ€ΠΌΡ‹ ΠŸΡ€ΠΎΠΌΠΎ

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ добавлСния динамичСски создаваСмых элСмСнтов ΠΈ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ² Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ.

09.09.2019 17857 35 bmk74 7

Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ (ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сразу Π²ΠΎ всСх ΠΎΡ‚Ρ‡Π΅Ρ‚Π°Ρ… ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ)

Как Π·Π° 10 ΠΌΠΈΠ½ΡƒΡ‚ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π°ΠΌΠΈ программистам ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π’Πž Π’Π‘Π• ОВЧЁВЫ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ автоматичСского выдСлСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π° (Ρ‚ΠΎΠΉ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ установлСн курсор). И ПРИ ЭВОМ ΠΠ˜Π§Π•Π“Πž НЕ Π‘Π›ΠžΠœΠΠ’Π¬.

17.10.2021 2614 5 ΠŸΠ°Ρ‚Ρ€ΠΈΠΎΡ‚ 48

Π‘Π°ΠΌΡ‹Π΅ красивыС ΡˆΠ°Ρ…ΠΌΠ°Ρ‚Ρ‹ для 1Π‘ Π½Π° управляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ…

ЗдравствуйтС, прСдставляСм Π’Π°ΡˆΠ΅ΠΌΡƒ вниманию ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ³Ρ€Ρƒ – Π¨Π°Ρ…ΠΌΠ°Ρ‚Ρ‹! Написана ΠΈΠ³Ρ€Π° срСдствами 1Π‘, Π½Π° управляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ…. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ прСдставляСт собой с Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ систСму, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹Π΅ логичСскиС ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ ΠΈ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚Π»Π°ΠΆΠ΅Π½Π° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ протСстирована. ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ авторский Π΄ΠΈΠ·Π°ΠΉΠ½ Ρ„ΠΈΠ³ΡƒΡ€, ΠΈΠΊΠΎΠ½ΠΎΠΊ ΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ приятСн Π³Π»Π°Π·Ρƒ. Π˜Π³Ρ€Π° содСрТит большоС количСство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, настроСк ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΈΠ³Ρ€Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡΠ΅Ρ‚Π΅Π²ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ, Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΡƒ с Π±ΠΎΡ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ³Ρ€Ρƒ Π½Π° Π΄Π²ΠΎΠΈΡ…. НС упуститС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°ΠΉΡ‚ΠΈ ряд тСхничСских Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹Ρ… для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ Π² Π²Π΅Ρ‡Π½ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ с ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ! Π–Π΅Π»Π°ΡŽΡ‰ΠΈΠ΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° управляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΏΠΎΡ‡Π΅Ρ€ΠΏΠ½ΡƒΡ‚ΡŒ Π² этой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

18.02.2021 5611 13 compmir 30

Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Π°Ρ справка ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ 1Π‘ (ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅)

Π‘Π°Π·Π° Π·Π½Π°Π½ΠΈΠΉ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠ°Ρ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ основной Π±Π°Π·Ρ‹. ΠŸΠΎΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ΡΡ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ, формируСтся Π² Π²ΠΈΠ΄Π΅ статСй прямо Π² 1Π‘ (тСкст, ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ссылки). Π•ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прикрСплСния Ρ„Π°ΠΉΠ»ΠΎΠ², привязки ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ 1Π‘, возмоТности Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π° ΠΈ коммСнтирования ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ.

29.09.2020 15795 82 sapervodichka 47

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ настройка динамичСского списка Π£Π€ ΠŸΡ€ΠΎΠΌΠΎ

ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ Π²Ρ‹Π±ΠΎΡ€Π° ΠΈ Π½Π΅ ΡƒΠ²ΠΈΠ΄Π΅Π² Ρ‚Π°ΠΌ Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ΅ списка элСмСнтов, часто хочСтся ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ ΠΈΡ… отсутствия Ρ‚Π°ΠΌ, Ρ‚. Π΅. ΠΊΠ°ΠΊΠΎΠΉ Π½Π°Π»ΠΎΠΆΠ΅Π½ ΠΎΡ‚Π±ΠΎΡ€. Но стандартная настройка списка управляСмой Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ настройки, скрывая ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ фиксированный ΠΎΡ‚Π±ΠΎΡ€. ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π²Π°ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ настройкой динамичСского списка, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… настроСк Π΅Ρ‰Π΅ фиксированныС.

31.05.2017 39174 161 tormozit 25

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π² WPF ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько прСимущСств ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ модСлями, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ привязки Π΄Π°Π½Π½Ρ‹Ρ… ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ свойств, Π³ΠΈΠ±ΠΊΠΎΠ΅ прСдставлСниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ сначала Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ основныС понятия привязки Π΄Π°Π½Π½Ρ‹Ρ… Π² WPF, Π° Π·Π°Ρ‚Π΅ΠΌ β€” использованиС класса Binding ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… возмоТностСй привязки Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ привязки Π΄Π°Π½Π½Ρ‹Ρ…

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ понятия привязки Π΄Π°Π½Π½Ρ‹Ρ…

НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ элСмСнт привязываСтся ΠΈ ΠΊΠ°ΠΊΠΎΠΉ источник Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, каТдая привязка всСгда соотвСтствуСт ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π½Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ.

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС, привязка Π΄Π°Π½Π½Ρ‹Ρ… являСтся, ΠΏΠΎ сущСству, мостом ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ†Π΅Π»ΡŒΡŽ привязки ΠΈ источником привязки. На рисункС прСдставлСны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ основныС ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ привязки Π΄Π°Π½Π½Ρ‹Ρ… WPF.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, каТдая привязка состоит ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²:

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
TargetTextBox
Π¦Π΅Π»Π΅Π²ΠΎΠ΅ свойствоText
Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Employee
ΠŸΡƒΡ‚ΡŒ ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ исходного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Name

Π¦Π΅Π»Π΅Π²ΠΎΠ΅ свойство Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ свойством зависимостСй.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ связывании Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ привязки привязываСтся ΠΊ источнику привязки. НапримСр, ΠΏΡ€ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… XML Π² ListBox с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ привязки Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ привязываСтС ListBox ΠΊ XML-Π΄Π°Π½Π½Ρ‹ΠΌ.

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…

МоТно Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ привязки с использованиСм ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° Π½Π΅ контСкста Π΄Π°Π½Π½Ρ‹Ρ…. Π―Π²Π½ΠΎΠ΅ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ исходного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ привязкС Ρ†Π²Π΅Ρ‚Π° ΠΏΠ΅Ρ€Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ»Π°Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊ Ρ†Π²Π΅Ρ‚Ρƒ Ρ„ΠΎΠ½Π° Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’ этом случаС контСкст Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ Π½ΡƒΠΆΠ΅Π½, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ привязка Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ этими двумя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Но Ссли для привязки Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ исходный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° основС контСкста Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ свойства DataContext всС привязки, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ контСкст Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ.

НаправлСниС ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…

Как ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ стрСлка Π½Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ рисункС, ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… связывания ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ΄Ρ‚ΠΈ ΠΎΡ‚ Ρ†Π΅Π»ΠΈ привязки ΠΊ источнику привязки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, исходноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ измСняСтся, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ измСняСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ TextBox ) ΠΈΠ»ΠΈ ΠΎΡ‚ источника привязки ΠΊ Ρ†Π΅Π»ΠΈ привязки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, содСрТимоС TextBox обновляСтся ΠΏΡ€ΠΈ измСнСниях Π² источникС привязки), Ссли источник привязки прСдоставляСт ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ увСдомлСния.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, трСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ источника. Или ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ возмоТности обновлСния источника Π΄Π°Π½Π½Ρ‹Ρ…. Для управлСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Binding.Mode.

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ рисункС ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ°OneWay ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ автоматичСскому измСнСнию свойства Ρ†Π΅Π»ΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ свойства источника, Π½ΠΎ измСнСния свойства Ρ†Π΅Π»ΠΈ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΊ свойству источника. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ привязки ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ссли привязываСмый элСмСнт управлСния нСявно доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒΡΡ ΠΊ источнику, Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΊΠ°ΠΊ Π±ΠΈΡ€ΠΆΠ΅Π²Ρ‹Π΅ сводки, ΠΈΠ»ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, свойство Ρ†Π΅Π»ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ интСрфСйса для внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π° привязанной ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Если Π½Π΅Ρ‚ нСобходимости ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ измСнСния Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ свойства, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ привязки OneWay β€” Π² этом случаС удастся ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΈΠ·Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Ρ€Π΅ΠΆΠΈΠΌΠ° привязки TwoWay.

ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ°TwoWay ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ измСнСнию Π»ΠΈΠ±ΠΎ исходного свойства, Π»ΠΈΠ±ΠΎ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ свойства для автоматичСского обновлСния Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ свойства. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ привязки ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для измСняСмых Ρ„ΠΎΡ€ΠΌ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… сцСнариСв ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ свойств ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ привязку OneWay, Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ свойства зависимости (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это свойства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… элСмСнтов управлСния, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ TextBox.Text ΠΈ CheckBox.IsChecked) ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ привязки TwoWay. БущСствуСт способ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π»ΠΈ свойство зависимостСй односторонниС ΠΈΠ»ΠΈ двухсторонниС привязки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: для этого Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ свойства, воспользовавшись ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ DependencyProperty.GetMetadata, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства FrameworkPropertyMetadata.BindsTwoWayByDefault.

OneWayToSource β€” это обратная привязка OneWay; ΠΎΠ½Π° обновляСт свойство источника ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ свойства Ρ†Π΅Π»ΠΈ. Одним ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² являСтся пСрСсчСт исходного значСния ΠΈΠ· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса.

На ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° привязка OneTime, которая ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ свойства исходным свойством, Π½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния ΠΏΡ€ΠΈ этом Π½Π΅ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ. Если Π² контСкстС Π΄Π°Π½Π½Ρ‹Ρ… производятся измСнСния ΠΈΠ»ΠΈ мСняСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, это ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ отраТаСтся Π² свойствС Ρ†Π΅Π»ΠΈ. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ привязки ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ссли ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ снимок Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ статичными. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, этот Ρ‚ΠΈΠΏ привязки ΠΏΠΎΠ»Π΅Π·Π΅Π½, Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅Π»Π΅Π²ΠΎΠ΅ свойство с использованиСм ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ значСния ΠΈΠ· исходного свойства, Π° контСкст Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Ρ€Π°Π½Π΅Π΅ нСизвСстСн. Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌ, ΠΏΠΎ сути, β€” упрощСнная Ρ„ΠΎΡ€ΠΌΠ° привязки OneWay, которая обСспСчиваСт Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² случаях, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² источникС Π½Π΅ мСняСтся.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ измСнСния источника (ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹Π΅ ΠΊ привязкам OneWay ΠΈ TwoWay), источник Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ подходящий ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ увСдомлСния ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ свойств, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ INotifyPropertyChanged. Π‘ΠΌ. практичСскоС руководство ΠΏΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ увСдомлСния ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ свойства (.NET Framework) Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ INotifyPropertyChanged.

Бвойство Binding.Mode содСрТит Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… привязки ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ привязки.

Π§Ρ‚ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ обновлСния источника

ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ TwoWay ΠΈΠ»ΠΈ OneWayToSource, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² свойствС Ρ†Π΅Π»ΠΈ ΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ ΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² источник, Ρ‡Ρ‚ΠΎ называСтся ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ источника. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ тСкст элСмСнта TextBox для измСнСния Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ источника.

Но обновляСтся Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² источникС Π²ΠΎ врСмя измСнСния тСкста ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° измСнСния тСкста Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, Π° элСмСнт управлСния тСряСт фокус? Бвойство Binding.UpdateSourceTrigger опрСдСляСт, Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ источника. Π’ΠΎΡ‡ΠΊΠΈ ΠΏΡ€Π°Π²ΠΎΠΉ стрСлки Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ рисункС ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ Ρ€ΠΎΠ»ΡŒ свойства Binding.UpdateSourceTrigger.

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ UpdateSourceTrigger Ρ€Π°Π²Π½ΠΎ UpdateSourceTrigger.PropertyChanged, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ стрСлка Π²ΠΏΡ€Π°Π²ΠΎ TwoWay ΠΈΠ»ΠΈ привязки OneWayToSource, обновляСтся, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСняСтся свойство Ρ†Π΅Π»ΠΈ. Однако Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ UpdateSourceTrigger Ρ€Π°Π²Π½ΠΎ LostFocus, Ρ‚ΠΎ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ обновляСтся с Π½ΠΎΠ²Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Ρ†Π΅Π»Π΅Π²ΠΎΠ΅ свойство тСряСт фокус.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сцСнария для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ значСния UpdateSourceTrigger с использованиСм TextBox Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ UpdateSourceTriggerКогда обновляСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠ°ΠŸΡ€ΠΈΠΌΠ΅Ρ€ сцСнария для TextBox
LostFocus (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для TextBox.Text)Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΡ‚Π΅Ρ€Π΅ фокуса элСмСнтом управлСния TextBoxTextBox, связанный с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ (см. Ρ€Π°Π·Π΄Π΅Π» Π½ΠΈΠΆΠ΅ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…)
PropertyChangedΠŸΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² TextBox.Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ управлСния TextBox Π² ΠΎΠΊΠ½Π΅ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹ Ρ‡Π°Ρ‚Π°.
ExplicitКогда ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ UpdateSource.Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния TextBox Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ (исходныС значСния ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ привязки Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса прилоТСния со страницы ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° привязки Π΄Π°Π½Π½Ρ‹Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ отобраТаСтся список элСмСнтов Π°ΡƒΠΊΡ†ΠΈΠΎΠ½Π°.

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ дСмонстрируСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ возмоТности привязки Π΄Π°Π½Π½Ρ‹Ρ….

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ ListBox привязано ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² AuctionItem. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ AuctionItem ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ свойства, ΠΊΠ°ΠΊ Description, StartPrice, StartDate, Category ΠΈ SpecialFeatures.

Π’ΠΈΠΏΠΎΠΌ свойства StartDate являСтся DateTime, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π°Ρ‚Ρƒ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ врСмя с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ миллисСкунды. Π’ этом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ использовался для отобраТСния Π΄Π°Ρ‚Ρ‹ Π² ΡƒΠΊΠΎΡ€ΠΎΡ‡Π΅Π½Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. БвСдСния ΠΎ прСобразоватСлях см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ появляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Ρ„ΠΎΡ€ΠΌΠ°.

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ поля Ρ„ΠΎΡ€ΠΌΡ‹, ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Submit для добавлСния Π΄Π°Π½Π½Ρ‹Ρ… Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. К Π½ΠΎΠ²ΠΎΠΉ записи Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ всС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ настройки Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈ сортировки. Π’ этом ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ случаС элСмСнт, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ рисункС, Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

На этом рисункС Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, прСдоставлСнная Π² элСмСнтС управлСния Start Date TextBox. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π½Π΅Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΡƒΡŽ Π΄Π°Ρ‚Ρƒ (нСдопустимый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΡƒΡŽ Π΄Π°Ρ‚Ρƒ), ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ToolTip ΠΈ красного Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠ° рядом с TextBox. БвСдСния ΠΎ создании Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ описанным Π²Ρ‹ΡˆΠ΅ возмоТностям связывания Π΄Π°Π½Π½Ρ‹Ρ…, обсудим основныС понятия, Π²Π°ΠΆΠ½Ρ‹Π΅ для понимания привязки Π΄Π°Π½Π½Ρ‹Ρ… WPF.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ привязки

Подводя ΠΈΡ‚ΠΎΠ³ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ основным понятиям, описанным Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…, слСдуСт ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ привязка устанавливаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Binding ΠΈ каТдая привязка ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ состоит ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²: Ρ†Π΅Π»ΠΈ привязки, свойства Ρ†Π΅Π»ΠΈ, источника привязки ΠΈ ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ источника. Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π» описываСт установку привязки.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ источника привязки являСтся класс с ΠΈΠΌΠ΅Π½Π΅ΠΌ MyData, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² пространствС ΠΈΠΌΠ΅Π½ SDKSample. Π’ качСствС дСмонстрационного ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° MyData ΠΈΠΌΠ΅Π΅Ρ‚ строковоС свойство с ΠΈΠΌΠ΅Π½Π΅ΠΌ ColorName со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Red. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создаСтся ΠΊΠ½ΠΎΠΏΠΊΠ° с красным Ρ„ΠΎΠ½ΠΎΠΌ.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ синтаксисС объявлСния привязки ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ настройки привязки Π² ΠΊΠΎΠ΄Π΅ см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠžΠ±Ρ‰ΠΈΠ΅ свСдСния ΠΎΠ± объявлСнии привязок.

Если ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊ основной Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. На этом рисункС описываСтся привязка OneWay, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ свойство Background ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ привязку OneWay ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

ΠœΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ вопрос, ΠΏΠΎΡ‡Π΅ΠΌΡƒ эта привязка Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π΄Π°ΠΆΠ΅ нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ свойство ColorName ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ «ΡΡ‚Ρ€ΠΎΠΊΠ°», Π° свойство Background ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ Brush. Π­Ρ‚Π° привязка происходит Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ прСобразования Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ обсуТдаСтся Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….

Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ источника привязки

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ источник привязки задаСтся ΠΏΡƒΡ‚Π΅ΠΌ установки свойства DockPanel.DataContext. Π—Π°Ρ‚Π΅ΠΌ Button наслСдуСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ DataContext ΠΎΡ‚ DockPanel, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся Π΅Π³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ элСмСнтом. ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ источника привязки являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² привязки. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π±Π΅Π· указания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° источника привязки эта привязка Π½Π΅ ΠΈΠΌΠ΅Π»Π° Π±Ρ‹ смысла.

Π•ΡΡ‚ΡŒ нСсколько способов для указания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° источника привязки. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства DataContext Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ элСмСнта ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ нСсколько свойств ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ источнику. Однако ΠΈΠ½ΠΎΠ³Π΄Π° ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ источник привязки Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΡΡ… привязки. Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ вмСсто использования свойства DataContext ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ источник привязки, Π·Π°Π΄Π°Π² свойство Binding.Source нСпосрСдствСнно Π² объявлСнии привязки ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

ΠšΡ€ΠΎΠΌΠ΅ установки свойства DataContext нСпосрСдствСнно Π½Π° элСмСнт, наслСдуя Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ DataContext ΠΈΠ· Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ элСмСнта (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅), ΠΈ явного указания источника привязки ΠΏΡƒΡ‚Π΅ΠΌ установки свойства Binding.Source для привязки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² послСднСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅), ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство Binding.ElementName ΠΈΠ»ΠΈ свойство Binding.RelativeSource, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ источник привязки. Бвойство ElementName ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ привязкС ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ элСмСнтам Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈ использовании ΠΏΠΎΠ»Π·ΡƒΠ½ΠΊΠ° для настройки ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΊΠ½ΠΎΠΏΠΊΠΈ. Бвойство RelativeSource ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° привязка ΡƒΠΊΠ°Π·Π°Π½Π° Π² ControlTemplate ΠΈΠ»ΠΈ Style. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠžΠ±Ρ‰ΠΈΠ΅ свСдСния ΠΎΠ± источниках привязки.

Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΏΡƒΡ‚ΠΈ ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ

Если источник привязки являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ свойство Binding.Path для указания значСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для привязки. Если Π²Ρ‹ выполняСтС привязку ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ XML, для указания значСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ свойство Binding.XPath. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ свойство Path, Π΄Π°ΠΆΠ΅ Ссли это Π΄Π°Π½Π½Ρ‹Π΅ XML. НапримСр, Ссли трСбуСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ свойству Name Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ XmlNode (Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния запроса XPath), Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ свойству XPath слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство Path.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² описаниях свойств Path ΠΈ XPath.

Π₯отя ΠΌΡ‹ ΠΈ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΠ»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΡƒΡ‚ΡŒ Path ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² привязки, Π² сцСнариях, ΠΊΠΎΠ³Π΄Π° трСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ привязку ΠΊΠΎ всСму ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° источника привязки. Π’ этих случаях ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Path. Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ синтаксис пустой привязки: . Π’ этом случаС ListBox наслСдуСт DataContext ΠΎΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ элСмСнта DockPanel (Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅). Если ΠΏΡƒΡ‚ΡŒ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ производится привязка ΠΊΠΎ всСму ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡƒΡ‚ΡŒ Π½Π΅ Π±Ρ‹Π» ΡƒΠΊΠ°Π·Π°Π½, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ привязку свойства ItemsSource ΠΊΠΎ всСму ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ. (ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° ΠΊ коллСкциям.)

ΠšΡ€ΠΎΠΌΠ΅ привязки ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, этот сцСнарий ΠΏΠΎΠ»Π΅Π·Π΅Π½ Ρ‚Π°ΠΊΠΆΠ΅ для привязки ΠΊΠΎ всСму ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ свойству ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. НапримСр, Ссли ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ источника являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Ρ‚ΠΈΠΏΠ° String, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ привязку ΠΊ самой строкС. Π”Ρ€ΡƒΠ³ΠΈΠΌ распространСнным сцСнариСм являСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ привязки элСмСнта ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ с нСсколькими свойствами.

ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π»ΠΈ смысл для свойства Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° привязки. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ прСобразоватСля, Ссли Ρ‚ΠΈΠΏ прСобразования ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅ сущСствуСт. БвСдСния ΠΎ прСобразоватСлях см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° ΠΈ класс BindingExpression

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ возмоТностям ΠΈ использованию привязки Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с классом BindingExpression. Как Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…, класс Binding являСтся классом высокого уровня для объявлСния привязки. Он прСдоставляСт мноТСство свойств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ характСристики привязки. Бвязанный класс BindingExpressionявляСтся Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ связь ΠΌΠ΅ΠΆΠ΄Ρƒ источником ΠΈ Ρ†Π΅Π»ΡŒΡŽ. ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° содСрТит всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ совмСстно Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… выраТСниях привязки. BindingExpression β€” это Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ экзСмпляра, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΌ ΠΈ содСрТит всС свСдСния ΠΎΠ± экзСмплярС Binding.

Один ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ myBinding ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания Π΄Ρ€ΡƒΠ³ΠΈΡ… привязок. НапримСр, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ myBinding ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для привязки тСкстового содСрТимого Ρ„Π»Π°ΠΆΠΊΠ° ΠΊ ColorName. Π’ этом сцСнарии Π±ΡƒΠ΄ΡƒΡ‚ Π΄Π²Π° экзСмпляра BindingExpression, совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ myBinding.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ BindingExpression возвращаСтся ΠΏΡƒΡ‚Π΅ΠΌ Π²Ρ‹Π·ΠΎΠ²Π° GetBindingExpression для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, привязанного ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ… Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ случаи использования класса BindingExpression.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…

Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ привязки ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ‚ красный Ρ†Π²Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΅Π΅ свойство Background привязано ΠΊ строковому свойству со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ «Red». Π­Ρ‚ΠΎ строковоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‚ΠΈΠΏΠΎΠ² находится Π² Ρ‚ΠΈΠΏΠ΅ Brush для прСобразования строкового значСния Π² Brush.

Если Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ эти свСдСния Π½Π° рисунок ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»Π° Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ привязки, схСма Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Однако Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли вмСсто свойства строкового Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ источника привязки ΠΈΠΌΠ΅Π΅Ρ‚ свойство Color Ρ‚ΠΈΠΏΠ° Color? Π’ этом случаС для создания привязки Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства Color Π² Π½Π΅Ρ‡Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ свойство Background. ΠŸΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡΡ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π² интСрфСйс IValueConverter, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ IValueConverter.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСсто прСобразования ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ схСма выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, прСобразования ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ доступны благодаря прСобразоватСлям Ρ‚ΠΈΠΏΠΎΠ², ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π² Ρ‚ΠΈΠΏΠ΅, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ производится привязка. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Ρ‚ΠΈΠΏΠΎΠ² доступны Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅. Если ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ сомнСниСм, создайтС свой собствСнный ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ сцСнарии, Π³Π΄Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысл рСализация прСобразоватСля Π΄Π°Π½Π½Ρ‹Ρ….

Π”Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π² зависимости ΠΎΡ‚ Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… стандартов. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π°Π»ΡŽΡ‚Ρ‹ ΠΈΠ»ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄Π°Ρ‚Ρ‹/Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€Π΅ Π½Π° основС соглашСний, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… стандартах.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для измСнСния тСкстового значСния свойства. Они ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для измСнСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ источника изобраТСния, Ρ†Π²Π΅Ρ‚Π° ΠΈΠ»ΠΈ стиля ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ тСкста. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ экзСмплярС для прСобразования привязки нСподходящСго свойства, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ привязки тСкстового поля ΠΊ свойству Background ячСйки Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

К ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ нСсколько элСмСнтов управлСния ΠΈΠ»ΠΈ нСсколько свойств элСмСнтов управлСния. Π’ этом случаС основная привязка ΠΌΠΎΠΆΠ΅Ρ‚ просто ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ тСкст, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ привязки ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ спСцифичныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ отобраТСния, Π½ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ привязку Π² качСствС исходных Π΄Π°Π½Π½Ρ‹Ρ….

Π’ Ρ†Π΅Π»Π΅Π²ΠΎΠΌ свойствС Π΅ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ привязок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся MultiBinding. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ привязок, для MultiBinding ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ IMultiValueConverter. НапримСр, Ρ†Π²Π΅Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ вычислСн ΠΈΠ· ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ красного, синСго ΠΈ Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ значСниями ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΈΠ»ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² источника привязки. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈ свСдСния см. Π² MultiBinding.

ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° ΠΊ коллСкциям

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ источника привязки ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, свойства ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ содСрТат Π΄Π°Π½Π½Ρ‹Π΅, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ коллСкция Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², часто Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… вмСстС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ запроса ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…). Π”ΠΎ сих ΠΏΠΎΡ€ ΠΌΡ‹ обсуТдали привязку Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ. Однако распространСнным сцСнариСм Ρ‚Π°ΠΊΠΆΠ΅ являСтся привязка ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ сцСнариСм являСтся использованиС ItemsControl ΠΊΠ°ΠΊ ListBox, ListView ΠΈΠ»ΠΈ TreeView для отобраТСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ привязки Π΄Π°Π½Π½Ρ‹Ρ….

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, наша основная схСма ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ°. ΠŸΡ€ΠΈ привязкС ItemsControl ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ схСма выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Π΄Π°Π½Π½ΠΎΠΉ схСмС, для привязки свойства ItemsControl ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ свойство ItemsControl.ItemsSource являСтся свойством, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. ItemsSource ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ содСрТимоС ItemsControl. ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° β€” OneWay, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ свойство ItemsSource ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ привязку OneWay ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Бпособы Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ

МоТно ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ, которая Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ интСрфСйс IEnumerable. Однако Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ динамичСскиС привязки Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вставки ΠΈ удалСния элСмСнтов Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ автоматичСски обновляли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ интСрфСйс INotifyCollectionChanged. Π­Ρ‚ΠΎΡ‚ интСрфСйс прСдоставляСт событиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ

Π’Π°ΠΊ ΠΊΠ°ΠΊ ItemsControl привязан ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ сортировка, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ прСдставлСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ классами, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ интСрфСйс ICollectionView.

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ ΠΎ прСдставлСниях ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ β€” это слой, располоТСнный Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части связанной исходной ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎ исходной ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π΅ содСрТимоС Π½Π° основС запросов сортировки, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ, Π½Π΅ измСняя саму ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ. Π’ прСдставлСнии ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ поддСрТиваСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Если исходная коллСкция Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ интСрфСйс INotifyCollectionChanged, измСнСния, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Π΅ событиСм CollectionChanged, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² прСдставлСния.

Π’Π°ΠΊ ΠΊΠ°ΠΊ прСдставлСния Π½Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ исходныС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, каТдая исходная коллСкция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько связанных с Π½Π΅ΠΉ прСдставлСний. НапримСр, имССтся коллСкция ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Task. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прСдставлСний ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами. НапримСр, Π² Π»Π΅Π²ΠΎΠΉ части страницы ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ, отсортированныС ΠΏΠΎ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρƒ, Π° справа β€” сгруппированныС ΠΏΠΎ областям.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ прСдставлСния

Одним ΠΈΠ· способов создания ΠΈ использования прСдставлСния являСтся нСпосрСдствСнноС созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° прСдставлСния ΠΈ Π·Π°Ρ‚Π΅ΠΌ использованиС Π΅Π³ΠΎ Π² качСствС источника привязки. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° рассмотрим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ привязки Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ привязки Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ListBox привязываСтся ΠΊ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π½Π΅ ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ извлСкаСтся ΠΈΠ· прилоТСния ΠŸΡ€ΠΈΠΌΠ΅Ρ€ привязки Π΄Π°Π½Π½Ρ‹Ρ…. Класс CollectionViewSource являСтся XAML-прокси класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ наслСдуСтся ΠΎΡ‚ CollectionView. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Source прСдставлСния привязываСтся ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ AuctionItems (Ρ‚ΠΈΠΏΠ° ObservableCollection ) Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° прилоТСния.

Π—Π°Ρ‚Π΅ΠΌ рСсурс listingDataView слуТит источником привязки для элСмСнтов Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ListBox.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… прСдставлСния созданы Π² качСствС прСдставлСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ CollectionViewSource Π½Π° основС Ρ‚ΠΈΠΏΠ° исходной ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

Π’ΠΈΠΏ исходной ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈΠ’ΠΈΠΏ прСдставлСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ
IEnumerableΠ’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ‚ΠΈΠΏ, основанный Π½Π° CollectionViewНСвозмоТно Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты.
IListListCollectionViewΠ‘Π°ΠΌΡ‹ΠΉ быстрый.
IBindingListBindingListCollectionView

ИспользованиС прСдставлСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Один ΠΈΠ· способов создания ΠΈ использования прСдставлСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ прСдставлСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π² качСствС источника привязки. WPF Ρ‚Π°ΠΊΠΆΠ΅ создаСт прСдставлСниС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π² качСствС источника привязки. Если Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ привязку нСпосрСдствСнно ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, WPF выполняСт привязку ΠΊ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π”Π°Π½Π½ΠΎΠ΅ прСдставлСниС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ всСми привязками ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, поэтому измСнСния, внСсСнныС Π² прСдставлСниС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ΄Π½ΠΈΠΌ привязанным элСмСнтом управлСния Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ΄ΠΎΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сортировка ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ указатСля Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСно Π½ΠΈΠΆΠ΅), Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π½Π° всС привязки ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

ИспользованиС прСдставлСний ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ADO.NET

Для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ прСдставлСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ для ADO.NET DataTable ΠΈΠ»ΠΈ DataView ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π΄Π΅Π»Π΅Π³ΠΈΡ€ΡƒΡŽΡ‚ сортировку ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ DataView, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ сортировка ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ всСми прСдставлСниями ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ источника Π΄Π°Π½Π½Ρ‹Ρ…. Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ нСзависимой сортировки ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ прСдставлСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ прСдставлСниС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ с использованиСм собствСнного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° DataView.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ°

Как ΡƒΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, прСдставлСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ сортировку для ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅ находятся Π² Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ΠΊΠΈΠΉ порядок слСдования. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ позволяСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ порядок ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ порядок, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½Π° основС Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² сравнСния. Π’Π°ΠΊ ΠΊΠ°ΠΊ это прСдставлСниС Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, распространСн сцСнарий, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сортируСт столбцы Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ значСниям, содСрТащимся Π² столбцС. Π‘ использованиСм прСдставлСний управляСмая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ сортировка ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π΅Ρ‰Π΅ Ρ€Π°Π· Π±Π΅Π· нСобходимости внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ создания ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ запроса ΠΊ содСрТимому ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ руководство. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° столбцов GridView ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ (.NET Framework).

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° сортировки для Ρ„Π»Π°ΠΆΠΊΠ° «Sort by category and date» (Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΈ Π΄Π°Ρ‚Π΅) Π² CheckBox ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса прилоТСния, описанного Π² ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ привязки Π΄Π°Π½Π½Ρ‹Ρ….

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎΠ±Ρ‹ прСдставлСниС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ подмноТСство ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ Π² Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ· ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π° ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ привязки Π΄Π°Π½Π½Ρ‹Ρ…, Ρ„Π»Π°ΠΆΠΎΠΊ CheckBox «Show only bargains» (ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ ΠΏΠΎ сниТСнным Ρ†Π΅Π½Π°ΠΌ) содСрТит Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² с Ρ†Π΅Π½ΠΎΠΉ 25 Π΄ΠΎΠ»Π». БША ΠΈ Π²Ρ‹ΡˆΠ΅. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ выполняСтся для установки ShowOnlyBargainsFilter Π² качСствС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий Filter ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ CheckBox.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события ShowOnlyBargainsFilter рСализуСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Если вмСсто CollectionViewSource ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· классов CollectionView, для указания ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство Filter. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ руководство. Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… Π² прСдставлСнии (.NET Framework).

Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π—Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ класса, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для просмотра ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ IEnumerable, всС прСдставлСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ, которая позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ логичСски Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Π² прСдставлСнии ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π½Π° Π³Ρ€ΡƒΠΏΠΏΡ‹. Π“Ρ€ΡƒΠΏΠΏΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ явными, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ прСдоставляСт список Π³Ρ€ΡƒΠΏΠΏ, ΠΈΠ»ΠΈ нСявными, Ссли эти Π³Ρ€ΡƒΠΏΠΏΡ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ динамичСски Π² зависимости ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Ρ….

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° Ρ„Π»Π°ΠΆΠΊΠ° «Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ катСгориям» CheckBox.

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт

Π’ прСдставлСниях Ρ‚Π°ΠΊΠΆΠ΅ присутствуСт понятиС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта. БущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Π² прСдставлСнии ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ пСрСмСщаСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ элСмСнта, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, располоТСнный Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ располоТСнии Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ руководство. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Π² Data CollectionView (.NET Framework).

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ WPF выполняСт привязку ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прСдставлСния (Π»ΠΈΠ±ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π»ΠΈΠ±ΠΎ прСдставлСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ), для всСх привязок ΠΊ коллСкциям имССтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт. ΠŸΡ€ΠΈ привязкС ΠΊ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ символ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹ («/») Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Path ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт прСдставлСния. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ контСкст Π΄Π°Π½Π½Ρ‹Ρ… являСтся прСдставлСниСм ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС выполняСтся привязка ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС выполняСтся привязка ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ элСмСнту ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ строкС выполняСтся привязка ΠΊ свойству Description Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

На ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта Π²Π»ΠΈΡΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сортировки ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈ сортировкС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта устанавливаСтся Π½Π° послСдний Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ элСмСнт, ΠΎΠ΄Π½Π°ΠΊΠΎ прСдставлСниС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ пСрСстраиваСтся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΅Π³ΠΎ. (Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄ΠΎ этого Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ элСмСнт Π±Ρ‹Π» Π² Π½Π°Ρ‡Π°Π»Π΅ списка, Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ элСмСнт ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π³Π΄Π΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π² сСрСдинС.) ΠŸΡ€ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ элСмСнт сохраняСтся, Ссли Π΄Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ остаСтся Π² прСдставлСнии послС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта устанавливаСтся Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ прСдставлСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ «ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ β€” подробности»

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для пСрСмСщСния элСмСнтов Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ для сцСнария привязки «ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ β€” подробности». Π•Ρ‰Π΅ Ρ€Π°Π· рассмотрим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс прилоТСния ΠΈΠ· ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π° ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ привязки Π΄Π°Π½Π½Ρ‹Ρ…. Π’ этом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π²Ρ‹Π±ΠΎΡ€ Π²Π½ΡƒΡ‚Ρ€ΠΈ ListBox опрСдСляСт содСрТимоС, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ Π² ContentControl. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Π±Ρ€Π°Π½ элСмСнт ListBox, ContentControl ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ свСдСния Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этого сцСнария Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ элСмСнтов управлСния, привязанных ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° привязки Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ ListBox ΠΈ ContentControl, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ интСрфСйсС прилоТСния Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ привязки Π΄Π°Π½Π½Ρ‹Ρ….

МоТно Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ шаблон. ЀактичСски Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ способом Π±Π΅Π· использования шаблонов (ΠΎΠ΄ΠΈΠ½ явно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ элСмСнтом ContentControl, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” нСявно элСмСнтом ListBox). К шаблонам Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅.

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Π‘Π΅Π· использования шаблонов Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса прилоТСния Π² ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ привязки Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°, ΠΎΠ±Π° элСмСнта управлСния β€” ΠΊΠ°ΠΊ ListBox, Ρ‚Π°ΠΊ ΠΈ ContentControl, ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠΎ всСму ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ (Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅ ΠΊ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ) элСмСнтов AuctionItem. ΠŸΡ€ΠΈ отсутствии особых инструкций ΠΏΠΎ способу отобраТСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… элСмСнт управлСния ListBox ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ строкового прСдставлСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π° элСмСнт управлСния ContentControl ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ строкового прСдставлСния привязанного ΠΊ Π½Π΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ опрСдСляСт DataTemplates. Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅, ContentControl явно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ шаблон Π΄Π°Π½Π½Ρ‹Ρ… detailsProductListingTemplate. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ управлСния ListBox нСявно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаблон Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² AuctionItem Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

ΠŸΡ€ΠΈ использовании Π΄Π²ΡƒΡ… шаблонов DataTemplate Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Π±ΡƒΠ΄Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ интСрфСйсу, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ привязки Π΄Π°Π½Π½Ρ‹Ρ…. Как ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° этом снимкС, Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ DataTemplate Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² элСмСнтах управлСния, ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ подходящиС Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты для Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, элСмСнты DataTrigger ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ шаблонС DataTemplate, Ρ‡Ρ‚ΠΎΠ±Ρ‹ элСмСнты AuctionItem со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ SpecialFeatures для HighLight ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΈΡΡŒ с ΠΎΡ€Π°Π½ΠΆΠ΅Π²ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ ΠΈ Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΎΠΉ.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠžΠ±Ρ‰ΠΈΠ΅ свСдСния ΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (.NET Framework).

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…

Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΡ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²Π΅Π» ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚ΠΈΠΏΠ΅, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… трСбованиях ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ прилоТСния. Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ рассматриваСтся, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π² WPF.

Бвязь ΠΏΡ€Π°Π²ΠΈΠ» ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ привязки

МодСль привязки Π΄Π°Π½Π½Ρ‹Ρ… WPF позволяСт ΡΠ²ΡΠ·Π°Ρ‚ΡŒ ValidationRules с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Binding. НапримСр, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ TextBox привязываСтся ΠΊ свойству с ΠΈΠΌΠ΅Π½Π΅ΠΌ StartPrice ΠΈ Π² свойство Binding.ValidationRules добавляСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ExceptionValidationRule.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ValidationRule провСряСт, являСтся Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства допустимым. Π’ состав WPF входят Π΄Π²Π° Ρ‚ΠΈΠΏΠ° встроСнных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ValidationRule:

ExceptionValidationRule выполняСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… Π²ΠΎ врСмя обновлСния свойства источника привязки. Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ StartPrice ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ integer. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ†Π΅Π»ΠΎΠ΅ число, создаСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, приводящСС ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ привязка Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π° ΠΊΠ°ΠΊ нСдопустимая. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ синтаксисом для явной установки свойства ExceptionValidationRule являСтся установка свойства ValidatesOnExceptions Π² true для вашСго ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Binding ΠΈΠ»ΠΈ MultiBinding.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ DataErrorValidationRule провСряСт Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ошибок, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ интСрфСйс IDataErrorInfo. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎΠ± использовании этого ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ DataErrorValidationRule. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ синтаксисом для явной установки свойства DataErrorValidationRule являСтся установка свойства ValidatesOnDataErrors Π² true для вашСго ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Binding ΠΈΠ»ΠΈ MultiBinding.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ собствСнноС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² наслСдованиС ΠΎΡ‚ класса ValidationRule ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ Validate. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ элСмСнтом управлСния «Π”Π°Ρ‚Π° Π½Π°Ρ‡Π°Π»Π°» для Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ списка ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² TextBox, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ привязки Π΄Π°Π½Π½Ρ‹Ρ….

StartDateEntryForm TextBox ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ это ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ FutureDateRule, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ UpdateSourceTrigger Ρ€Π°Π²Π½ΠΎ PropertyChanged, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ привязки обновляСт исходноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ провСряСт ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ValidationRules ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π΄Π°Π»Π΅Π΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ».

ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ°

Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ нСдопустимоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΠΈΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса прилоТСния Π½Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ. Одним ΠΈΠ· способов прСдоставлСния Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи являСтся установка присоСдинСнного свойства Validation.ErrorTemplate для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ControlTemplate. Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅, StartDateEntryForm β€” TextBox ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ErrorTemplate с ΠΈΠΌΠ΅Π½Π΅ΠΌ validationTemplate. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ элСмСнта validationTemplate.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ AdornedElementPlaceholder ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Π³Π΄Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ элСмСнт управлСния.

Если ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ErrorTemplate ΠΈ ToolTip, TextBox StartDateEntryForm ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ошибки ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

Если ΠΊ Binding присоСдинСны ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Π½ΠΎ для привязанного элСмСнта управлСния Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ErrorTemplate, для увСдомлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΠ± ошибкС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ErrorTemplate. ErrorTemplate ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” это шаблон элСмСнта управлСния, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ ΠΊΡ€Π°ΡΠ½ΡƒΡŽ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ Π½Π° слоС Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… элСмСнтов. Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ErrorTemplate ΠΈ ToolTip ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс TextBox StartPriceEntryForm ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ошибки ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠΏΡ€ΠΈ слоТной привязкС Π² список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ прСдоставлСния Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ всСх элСмСнтов управлСния Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ см. Π² ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅ «ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π°» Ρ€Π°Π·Π΄Π΅Π»Π° ΠžΠ±Ρ‰ΠΈΠ΅ свСдСния ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠ½Π°Ρ….

ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выполняСтся, ΠΊΠΎΠ³Π΄Π° Ρ†Π΅Π»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пСрСдаСтся свойству источника привязки. Π­Ρ‚ΠΎΡ‚ пСрСнос выполняСтся для привязок TwoWay ΠΈ OneWayToSource. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° обновлСния источника зависит ΠΎΡ‚ значСния свойства UpdateSourceTrigger, ΠΊΠ°ΠΊ описано Π² ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅ Π§Ρ‚ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ обновлСния источника.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ процСсс ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΠ»ΠΈ ошибки Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π½Π° любом этапС Π΄Π°Π½Π½ΠΎΠ³ΠΎ процСсса процСсс Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π²Π°Π½.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ привязки провСряСт, Π΅ΡΡ‚ΡŒ Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ValidationRule, Π³Π΄Π΅ для ValidationStep Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ RawProposedValue для этого Binding. Π’ этом случаС ΠΎΠ½ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Validate Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ValidationRule Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° всС ΠΎΠ½ΠΈ Π½Π΅ ΡΡ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ привязки Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, Ссли Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ сущСствуСт.

Если ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сработаСт ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ связывания провСряСт, Π½Π΅Ρ‚ Π»ΠΈ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ValidationRule, Ρ‡Π΅ΠΉ ValidationStep ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ConvertedProposedValue для этого Binding, ΠΈ Π² этом случаС ΠΎΠ½ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Validate для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ValidationRule, Ρ‡Π΅ΠΉ ValidationStep ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ConvertedProposedValue, ΠΏΠΎΠΊΠ° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ встрСтится с ошибкой ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° всС ΠΎΠ½ΠΈ Π½Π΅ ΠΏΡ€ΠΎΠΉΠ΄ΡƒΡ‚.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ привязки присваиваСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ исходному свойству.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ привязки провСряСт, Π΅ΡΡ‚ΡŒ Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ValidationRule, Π³Π΄Π΅ для ValidationStep Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ CommittedValue для этого Binding. Π’ этом случаС ΠΎΠ½ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Validate Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ValidationRule, Ρ‡Π΅ΠΉ ValidationStep ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ CommittedValue, Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΏΠΎΠΊΠ° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° всС ΠΎΠ½ΠΈ Π½Π΅ ΡΡ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *