【发布时间】:2012-05-10 09:07:19
【问题描述】:
编辑:我根据 Thorstens Answer 使用枚举更改了代码,但没有用。
我正在使用依赖属性来影响我正在创建的 WPF 控件。我是 WPF 新手,所以我不确定自己做错了什么,也找不到合适的文章来解释它。
例如,我试图通过 Dep 属性定义控件的可见性。在这种情况下,属性将是这样的:
public static readonly DependencyProperty IconVisibilityBoldProperty =
DependencyProperty.Register("IconVisibilityBold", typeof(Visibility), typeof(RTFBox),
new PropertyMetadata(Visibility.Hidden), VisibilityValidateCallback);
private static bool VisibilityValidateCallback(object value)
{
Visibility prop = (Visibility) value;
if (prop == Visibility.Hidden || prop == Visibility.Visible)
{
return true;
}
return false;
}
public Visibility IconVisibilityBold
{
get
{
return (Visibility)GetValue(IconVisibilityBoldProperty);
}
set
{
SetValue(IconVisibilityBoldProperty, value);
}
}
编辑: 要获得正确的 XAML,请查找 Slugarts 答案。 用于此的 XAML 条目(在本例中为 ToggleButton)将是
<ToggleButton Visibility="{Binding Path=IconVisibilityBold}" ToolBar.OverflowMode="Never" x:Name="ToolStripButtonBold" Command="EditingCommands.ToggleBold" ToolTip="Bold">
<Image Source="Images\Bold.png" Stretch="None"/>
</ToggleButton>
我已经输出了属性,它显示为“隐藏”,正如元数据默认值所暗示的那样,但显然我在绑定上做错了。我要在那里写什么?
【问题讨论】:
-
您是在创建新的自定义控件还是用户控件?或者你只是改变了ToggleButton的数据模板?您的属性在哪个类中定义?
-
我只是想根据属性值隐藏按钮,属性定义在按钮和其他控件所在的同一个类中。 (在本例中名为“RTFBox”
标签: c# wpf data-binding dependency-properties