Привет Я пытаюсь связать свойство управления пользователем, но пока не удалось. Ниже мой код.wpf Как связать свойство usercontrol
<UserControl x:Class="MyControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="120" d:DesignWidth="120"
x:Name="uc"
Background="Transparent">
<Grid>
<Viewbox>
......
<CheckBox Name="Start" Visibility="Hidden" IsChecked="{Binding Path=Animation, ElementName=uc, Mode=TwoWay}"/>
.......
</Viewbox>
</Grid>
</UserControl>
Код управления пользователя позади.
public partial class MyControl: UserControl
{
public static readonly DependencyProperty AnimationProperty = DependencyProperty.Register("Animation", typeof(bool), typeof(CircularProgressBar));
public bool Animation
{
get { return (bool)GetValue(AnimationProperty); }
set
{
SetValue(AnimationProperty, value);
}
}
public MyControl()
{
InitializeComponent();
//(this.Content as FrameworkElement).DataContext = this;
}
}
Посмотреть код
<local:MyControl x:Name="cpb" Animation="{Binding CpbIsEnabled, Mode=TwoWay}" />
код Просмотр модели
private bool cpbEnabled;
public bool CpbIsEnabled
{
get { return cpbEnabled; }
set { cpbEnabled = value; OnPropertyChanged("CpbIsEnabled"); }
}
public ICommand ShowSelFlagCommand
{
get
{
return showSelFlagCommand ?? (showSelFlagCommand = new DelegateCommand(() =>
{
if (CpbIsEnabled) { CpbIsEnabled = false; }
else { CpbIsEnabled = true; }
}
));
}
}
я ставлю точку останова в анимации набора свойств метода в коде управления пользователя позади. Но когда ICOmmand in view модель выполняется, она никогда не достигает точки останова. Другими словами, свойство Animation не устанавливается привязкой.
Может ли кто-нибудь сказать мне, что я пропустил?
Спасибо,
метод набора анимации свойство не будет вызвана с помощью привязки. Это свойство используется только при получении или настройке в коде –
Свойство Animation не установлено привязкой. Как я могу заставить его работать? – Shawn
Я считаю, что вы используете стандартный синтаксис Property как оболочку для DependencyProperty. Геттер в порядке, но сеттер должен ТОЛЬКО вызвать SetValue (AnimationProperty, значение); – jhenninger