Для цього вам потрібна властивість залежності:
public BindingList<User> Users
{
get { return (BindingList<User>)GetValue(UsersProperty); }
set { SetValue(UsersProperty, value); }
}
public static readonly DependencyProperty UsersProperty =
DependencyProperty.Register("Users", typeof(BindingList<User>),
typeof(OptionsDialog));
Після цього ви прив'язуєте прапорець до властивості залежності:
<CheckBox x:Name="myCheckBox"
IsChecked="{Binding ElementName=window1, Path=CheckBoxIsChecked}" />
Щоб це працювало, вам потрібно назвати своє Вікно або UserControl у його тезі відкриття та використовувати це ім'я у параметрі ElementName.
За допомогою цього коду, коли ви змінюєте властивість на стороні коду, ви змінюєте текстове поле. Крім того, кожного разу, коли ви ставите / знімаєте прапорець біля текстового поля, властивість залежності також змінюватиметься.
РЕДАГУВАТИ:
Простий спосіб створити властивість залежності - це набрати фрагмент propdp, який дасть вам загальний код властивостей залежності.
Весь код:
XAML:
<Window x:Class="StackOverflowTests.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" x:Name="window1" Height="300" Width="300">
<Grid>
<StackPanel Orientation="Vertical">
<CheckBox Margin="10"
x:Name="myCheckBox"
IsChecked="{Binding ElementName=window1, Path=IsCheckBoxChecked}">
Bound CheckBox
</CheckBox>
<Label Content="{Binding ElementName=window1, Path=IsCheckBoxChecked}"
ContentStringFormat="Is checkbox checked? {0}" />
</StackPanel>
</Grid>
</Window>
C #:
using System.Windows;
namespace StackOverflowTests
{
public partial class Window1 : Window
{
public bool IsCheckBoxChecked
{
get { return (bool)GetValue(IsCheckBoxCheckedProperty); }
set { SetValue(IsCheckBoxCheckedProperty, value); }
}
public static readonly DependencyProperty IsCheckBoxCheckedProperty =
DependencyProperty.Register("IsCheckBoxChecked", typeof(bool),
typeof(Window1), new UIPropertyMetadata(false));
public Window1()
{
InitializeComponent();
}
}
}
Зверніть увагу, що єдиним кодом є властивість Dependency. І ярлик, і прапорець прив’язані до нього. Якщо прапорець змінюється, мітка також змінюється.