編輯:我根據Thorstens Answer使用枚舉更改了代碼,但沒有工作。如何直接在WPF中使用自定義依賴屬性?
我正在使用依賴屬性來影響我創建的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 Visibility="{Binding Path=IconVisibilityBold}" ToolBar.OverflowMode="Never" x:Name="ToolStripButtonBold" Command="EditingCommands.ToggleBold" ToolTip="Bold">
<Image Source="Images\Bold.png" Stretch="None"/>
</ToggleButton>
我已經輸出的屬性,它顯示爲「隱藏」的元數據默認值應該暗示,但顯然我已經做了一些綁定錯誤。我需要在那裏寫什麼?
您是否正在創建新的自定義或用戶控件?或者你只是改變ToggleButton的數據模板?您的屬性定義在哪個類中? – Slugart
我只想根據屬性值隱藏按鈕,屬性在按鈕和其他控件所在的同一類中定義。 (在這種情況下命名爲「RTFBox」 – Andreas