我想重用控件,但其中一個方案需要上下文菜單,而其他方案則不需要。這是我的嘗試。綁定到UserControl中的依賴項屬性XAML
public partial class RP8Grid : UserControl {
public bool UseContextMenu {
get { return (bool)GetValue(UseContextMenuProperty); }
set { SetValue(UseContextMenuProperty, value); }
}
// Using a DependencyProperty as the backing store for UseContextMenu. This enables animation, styling, binding, etc...
public static readonly DependencyProperty UseContextMenuProperty =
DependencyProperty.Register("UseContextMenu", typeof(bool), typeof(RP8Grid), new PropertyMetadata(false));
public RP8Grid() {
InitializeComponent();
}
}
而在XAML使用屬性:
<ctls:RP8Grid UseContextMenu="False"/>
現在我不能離開廣場的一部分,我怎麼訪問UseContextMenu的用戶控件裏面? 我曾嘗試以下:
<DataGrid>
<DataGrid.ContextMenu>
<ContextMenu IsEnabled="{Binding UseContextMenu,RelativeSource={RelativeSource AncestorType=UserControl, Mode=FindAncestor}}">
</DataGrid.ContextMenu>
</DataGrid>
與結果:
無法爲參照 '的RelativeSource FindAncestor,AncestorType =' System.Windows.Controls.UserControl結合找到源」, AncestorLevel ='1'
你說得對,我覺得我打了普通話propdp的d。我的第一個實現。 RelativeSource,然後通過祖先鏈? – markokstate
'' –
無法找到,我的嘗試更新了這個問題 – markokstate