Skip to content

Instantly share code, notes, and snippets.

@Mahno74
Last active November 13, 2020 05:07
Show Gist options
  • Save Mahno74/b04cc13179379f459e3224a45aeb5cc4 to your computer and use it in GitHub Desktop.
Save Mahno74/b04cc13179379f459e3224a45aeb5cc4 to your computer and use it in GitHub Desktop.
WPF Привязка команд к блокам
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