by Anonymous » 07 Sep 2025, 22:45
Ich habe eine obsevableCollection von MenuitemViewModels, die an ein Menü bindet, das durch eine hierarchicalDatatemplate in den Fensterressourcen definiert ist. Wenn ein Menuitem -Tag zum HierarchicalDatatemplate hinzugefügt wird und das Menü erstellt wird. Jedes Menuitem scheint in ein anderes Element eingebettet zu sein, der den klickbaren Bereich auf das in den folgende Bildern gezeigte äußere blaue Feld einschränkt. Wenn ich das Menuitem durch einen Textblock ersetze, ist das Problem nicht vorhanden.
Ich möchte wissen, wie man Menüelemente für die bindbaren Befehle ohne zusätzliche eingebettete Kästchen verwendet. src = "
https://i.sstatic.net/rdndzpkz.png"/>
Dinge, die ich ausprobiert habe.
MenuitemViewModel [/b]
Code: Select all
public class MenuItemViewModel : INotifyPropertyChanged
{
public string? Text { get; set; }
public ICommand? Command { get; set; }
public ObservableCollection? Children { get; set; }
public event PropertyChangedEventHandler? PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
xaml
MainViewModel
Code: Select all
public ObservableCollection? MenuItems { get; set; }
Ich habe eine obsevableCollection von MenuitemViewModels, die an ein Menü bindet, das durch eine hierarchicalDatatemplate in den Fensterressourcen definiert ist. Wenn ein Menuitem -Tag zum HierarchicalDatatemplate hinzugefügt wird und das Menü erstellt wird. Jedes Menuitem scheint in ein anderes Element eingebettet zu sein, der den klickbaren Bereich auf das in den folgende Bildern gezeigte äußere blaue Feld einschränkt. Wenn ich das Menuitem durch einen Textblock ersetze, ist das Problem nicht vorhanden. [url=viewtopic.php?t=14917]Ich möchte[/url] wissen, wie man Menüelemente für die bindbaren Befehle ohne zusätzliche eingebettete Kästchen verwendet. src = "https://i.sstatic.net/rdndzpkz.png"/>
[b] Dinge, die ich ausprobiert habe.[code]
[/code]
MenuitemViewModel [/b]
[code]public class MenuItemViewModel : INotifyPropertyChanged
{
public string? Text { get; set; }
public ICommand? Command { get; set; }
public ObservableCollection? Children { get; set; }
public event PropertyChangedEventHandler? PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
[/code]
[b] xaml [/b]
[code]
[/code]
[b] MainViewModel [/b]
[code]public ObservableCollection? MenuItems { get; set; }
[/code]