Last active
November 13, 2020 05:07
-
-
Save Mahno74/b04cc13179379f459e3224a45aeb5cc4 to your computer and use it in GitHub Desktop.
WPF Привязка команд к блокам
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DockPanel> | |
<Menu DockPanel.Dock="Top" MinHeight="25"> | |
<MenuItem Header="File" /> | |
<MenuItem Header="Edit"> | |
<MenuItem Header="Copy" Command="Copy" CommandTarget="{Binding ElementName=tb1}" /> | |
<MenuItem Header="Paste" Command="Paste" CommandTarget="{Binding ElementName=tb1}" /> | |
</MenuItem> | |
</Menu> | |
<TextBox x:Name="tb1" DockPanel.Dock="Bottom" /> | |
</DockPanel> | |
//Привязка Binding в коде C# | |
Binding binding = new Binding(); | |
binding.ElementName = "myTextBox"; //источник | |
binding.Path = new PropertyPath("Text"); //поле источника | |
myTextBlock.SetBinding(TextBlock.TextProperty, binding); //привязка | |
//Свойство Mode объекта Binding, которое представляет режим привязки, может принимать следующие значения: | |
//OneWay: свойство объекта-приемника изменяется после модификации свойства объекта-источника. | |
//OneTime: свойство объекта-приемника устанавливается по свойству объекта-источника только один раз. В дальнейшем изменения в источнике никак не влияют на объект-приемник. | |
//TwoWay: оба объекта - применки и источник могут изменять привязанные свойства друг друга. | |
//OneWayToSource: объект-приемник, в котором объявлена привязка, меняет объект-источник. | |
//Default: по умолчанию (если меняется свойство TextBox.Text, то имеет значение TwoWay, в остальных случаях OneWay). | |
Обновление привязки. | |
Если мы используем двустороннюю привязку то при изменении приемника свойство источника не изменяется мгновенно. | |
PropertyChanged: источник привязки обновляется сразу после обновления свойства в приемнике | |
LostFocus: источник привязки обновляется только после потери фокуса приемником | |
Explicit: источник не обновляется до тех пор, пока не будет вызван метод BindingExpression.UpdateSource() | |
Default: значение по умолчанию. Для большинства свойств это значение PropertyChanged. А для свойства Text элемента TextBox это значение LostFocus | |
UpdateSourceTrigger=PropertyChanged; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment