Favoriten setzen per ContextMenu
This commit is contained in:
@@ -268,7 +268,8 @@ VerticalAlignment="Stretch">
|
||||
ContextMenuService.IsEnabled="{Binding IsChecked, ElementName=EditToggleButton}"
|
||||
ItemContainerStyle="{StaticResource PromptListBoxItem}"
|
||||
ItemsSource="{Binding SelectedFolder.Prompts, UpdateSourceTrigger=PropertyChanged}"
|
||||
SelectedItem="{Binding SelectedPrompt, Mode=TwoWay}">
|
||||
SelectedItem="{Binding SelectedPrompt, Mode=TwoWay}"
|
||||
SelectionMode="Single">
|
||||
<dxe:ListBoxEdit.ContextMenu>
|
||||
<ContextMenu>
|
||||
<ContextMenu.Resources>
|
||||
@@ -289,6 +290,15 @@ VerticalAlignment="Stretch">
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<Separator />
|
||||
<MenuItem
|
||||
x:Name="favorite"
|
||||
Command="{Binding ChangeFavoritenStatePromptCommand}"
|
||||
Header="Kopieren">
|
||||
<MenuItem.Icon>
|
||||
<Image Source="..\..\..\Ressources\Icons\Favorites32.png" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<Separator />
|
||||
<MenuItem Command="{Binding CopyPromptCommand}" Header="Kopieren">
|
||||
<MenuItem.Icon>
|
||||
<Image Source="..\..\..\Ressources\Icons\Copy24.png" />
|
||||
|
||||
@@ -118,6 +118,7 @@ namespace BeWo.View.Detail.AI
|
||||
private void ListBox_ContextMenuOpening(object sender, ContextMenuEventArgs e)
|
||||
{
|
||||
ViewModel.UpdatePromptCommands();
|
||||
favorite.Header = ViewModel.SelectedPrompt.IsFavorite ? "Favorit entfernen" : "Favorit hinzufügen";
|
||||
}
|
||||
|
||||
//private void listBox_Prompts_PreviewMouseUp(object sender, MouseButtonEventArgs e)
|
||||
|
||||
@@ -43,6 +43,7 @@ namespace BeWo.ViewModel.View.Administration
|
||||
public DelegateCommand CopyPromptCommand { get; private set; }
|
||||
public DelegateCommand PastePromptCommand { get; private set; }
|
||||
public DelegateCommand DeletePromptCommand { get; private set; }
|
||||
public DelegateCommand ChangeFavoritenStatePromptCommand { get; private set; }
|
||||
|
||||
public bool IsEditingMode { get; set; }
|
||||
|
||||
@@ -78,6 +79,7 @@ namespace BeWo.ViewModel.View.Administration
|
||||
CopyPromptCommand = new DelegateCommand(CopyPrompt, canCopyPrompt, false);
|
||||
PastePromptCommand = new DelegateCommand(PastePrompt, canPastePrompt, false);
|
||||
DeletePromptCommand = new DelegateCommand(OpenDeletePromptDialog, canOpenDeletePromptDialog, false);
|
||||
ChangeFavoritenStatePromptCommand = new DelegateCommand(ChangeFavoritenStatePrompt, canChangeFavoritenStatePrompt, false);
|
||||
|
||||
IsEditingMode = true;
|
||||
}
|
||||
@@ -368,23 +370,32 @@ namespace BeWo.ViewModel.View.Administration
|
||||
var edit_dc = edit_vm.CommitToDataContract();
|
||||
sel_prompt.UpdateByDataContract(edit_dc);
|
||||
|
||||
if (sel_prompt.IsFavorite && !Favoriten.SubPrompts.VMList.Contains(sel_prompt))
|
||||
Favoriten.SubPrompts.VMList.Add(sel_prompt);
|
||||
else if (!sel_prompt.IsFavorite && Favoriten.SubPrompts.VMList.Contains(sel_prompt))
|
||||
{
|
||||
Favoriten.SubPrompts.VMList.Remove(sel_prompt);
|
||||
|
||||
if(Favoriten.SubPrompts.Count == 0)
|
||||
{
|
||||
var selected_folder = SelectedFolder;
|
||||
SelectedFolder = null;
|
||||
SelectedFolder = selected_folder;
|
||||
}
|
||||
}
|
||||
UpdateSelectedPromptFavorite(sel_prompt);
|
||||
};
|
||||
|
||||
WindowService.Show(vm);
|
||||
}
|
||||
|
||||
private void UpdateSelectedPromptFavorite(AiPromptbausteinPromptVM sel_prompt = null)
|
||||
{
|
||||
if (sel_prompt is null)
|
||||
sel_prompt = SelectedPrompt;
|
||||
|
||||
if (sel_prompt.IsFavorite && !Favoriten.SubPrompts.VMList.Contains(sel_prompt))
|
||||
Favoriten.SubPrompts.VMList.Add(sel_prompt);
|
||||
else if (!sel_prompt.IsFavorite && Favoriten.SubPrompts.VMList.Contains(sel_prompt))
|
||||
{
|
||||
Favoriten.SubPrompts.VMList.Remove(sel_prompt);
|
||||
|
||||
if (Favoriten.SubPrompts.Count == 0)
|
||||
{
|
||||
var selected_folder = SelectedFolder;
|
||||
SelectedFolder = null;
|
||||
SelectedFolder = selected_folder;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CopyPrompt()
|
||||
{
|
||||
CopiedPrompt = SelectedPrompt;
|
||||
@@ -415,6 +426,15 @@ namespace BeWo.ViewModel.View.Administration
|
||||
folder.SubPrompts.VMList.Remove(SelectedPrompt);
|
||||
}
|
||||
|
||||
void ChangeFavoritenStatePrompt()
|
||||
{
|
||||
var sel_prompt = SelectedPrompt;
|
||||
|
||||
sel_prompt.IsFavorite = !sel_prompt.IsFavorite;
|
||||
|
||||
UpdateSelectedPromptFavorite(sel_prompt);
|
||||
}
|
||||
|
||||
bool canOpenAddPromptDialog()
|
||||
{
|
||||
return SelectedFolder?.CanAddPrompt ?? false;
|
||||
@@ -435,5 +455,10 @@ namespace BeWo.ViewModel.View.Administration
|
||||
{
|
||||
return SelectedPrompt?.CanEdit ?? false;
|
||||
}
|
||||
|
||||
bool canChangeFavoritenStatePrompt()
|
||||
{
|
||||
return SelectedPrompt is object;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user