Ich möchte ein Steuerelement wiederverwenden, aber eines der Szenarien erfordert ein Kontextmenü und die anderen nicht. Hier ist mein Versuch.Bindung an eine Abhängigkeitseigenschaft in 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();
}
}
Und in der XAML die Eigenschaft zu verwenden:
<ctls:RP8Grid UseContextMenu="False"/>
Jetzt ist der Teil ich nicht weg quadrieren kann, wie gelange ich UseContextMenu innerhalb des Usercontrol? Ich habe folgendes versucht:
<DataGrid>
<DataGrid.ContextMenu>
<ContextMenu IsEnabled="{Binding UseContextMenu,RelativeSource={RelativeSource AncestorType=UserControl, Mode=FindAncestor}}">
</DataGrid.ContextMenu>
</DataGrid>
mit den Ergebnissen:
kann nicht Quelle finden mit Referenzbindung 'Relative FindAncestor, AncestorType =' System.Windows.Controls.UserControl‘, AncestorLevel = '1'
Sie haben Recht, ich denke, ich traf propa instea d von propdp. Meine erste Implementierung. RelativeSource, dann durch die Ahnenkette hinauf? – markokstate
' ' –
Konnte nicht finden, habe die Frage mit meinem Versuch aktualisiert – markokstate