Blacklight是一组较旧的WPF控件和样式。代码可以找到here。它包含一个名为AnimatedExpander的控件,它实际上不是一个扩展器,而只是实现了HeaderedContentControl并添加了一个IsExpandedProperty dprop:
public static readonly DependencyProperty IsExpandedProperty =
DependencyProperty.Register("IsExpanded", typeof(bool), typeof(AnimatedExpander), new PropertyMetadata(true));
public bool IsExpanded
{
get
{
if (this.expandToggleButton != null)
{
return this.expandToggleButton.IsChecked.Value;
}
return (bool)GetValue(IsExpandedProperty);
}
set
{
SetValue(IsExpandedProperty, value);
}
}
我需要绑定到IsExpanded,以便我可以继续扩展扩展器。我很确定我有正确的绑定设置,并且这个自定义依赖项属性存在问题。如果我在Snoop中打开视图,并在扩展器上设置IsExpanded = True,则绑定有效。但是,只需单击控件上的expandToggleButton即可扩展控件,但不会触及我的绑定。
<controls:AnimatedExpander IsExpanded="{Binding SGGExpanderExpanded}" />
private bool _sGGExpanderExpanded;
public bool SGGExpanderExpanded
{
get { return _sGGExpanderExpanded; }
set
{
if (_sGGExpanderExpanded != value)
{
_sGGExpanderExpanded = value;
OnPropertyChanged("SGGExpanderExpanded");
}
}
}
当用户点击有线扩展控件的切换按钮时,如何绑定更改的值?
答案 0 :(得分:0)
一个糟糕的解决方案:
我能够通过将事件附加到ToggleButton点击并查看“sender”内容和IsChecked值来更新我的viewmodel来完成这项工作。