diff --git a/BeWo/Styles/Features/AIChatStyles.xaml b/BeWo/Styles/Features/AIChatStyles.xaml
index 974756b48..25e78408d 100644
--- a/BeWo/Styles/Features/AIChatStyles.xaml
+++ b/BeWo/Styles/Features/AIChatStyles.xaml
@@ -265,7 +265,7 @@
+ IsChecked="{Binding IsChecked, Mode=TwoWay}" />
diff --git a/BeWo/View/Detail/AI/AiConversationChatView.xaml b/BeWo/View/Detail/AI/AiConversationChatView.xaml
index fff4cdfa2..662b07f0c 100644
--- a/BeWo/View/Detail/AI/AiConversationChatView.xaml
+++ b/BeWo/View/Detail/AI/AiConversationChatView.xaml
@@ -14,6 +14,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:shared="clr-namespace:BS.Shared;assembly=BS.Shared"
xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup"
+ xmlns:templateselectors="clr-namespace:BeWo.View.TemplateSelectors"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:viewmodel="clr-namespace:BeWo.ViewModel"
xmlns:vmv="clr-namespace:BeWo.ViewModel.View"
@@ -54,9 +55,9 @@
FontSize="14"
FontWeight="SemiBold"
Foreground="{DynamicResource TextForegroundPrimary}"
+ MouseDown="ConversationRenameTextBlock_MouseDown"
Text="{Binding Displayname}"
TextTrimming="CharacterEllipsis"
- MouseDown="ConversationRenameTextBlock_MouseDown"
Visibility="{Binding IsEditing, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=false}" />
pDCs) : base(pDCs)
{
- VMList.ListChanged += (s, e) =>
- {
- if (e.ListChangedType == ListChangedType.ItemChanged)
- {
- var changedItem = VMList[e.NewIndex];
- Item_PropertyChanged(changedItem, new PropertyChangedEventArgs(nameof(AiConversationMessageVM.IsChecked)));
- }
- };
+ foreach(var vm in VMList)
+ {
+ vm.IsCheckedChanged += CloneIsCheckedChanged;
+ }
+
+ //VMList.ListChanged += (s, e) =>
+ // {
+ // if (e.ListChangedType == ListChangedType.ItemChanged)
+ // {
+ // var changedItem = VMList[e.NewIndex];
+ // Item_PropertyChanged(changedItem, new PropertyChangedEventArgs(nameof(AiConversationMessageVM.IsChecked)));
+ // }
+ // };
}
public AiConversationMessageListVM() : this(null) { }
- private void Item_PropertyChanged(object sender, PropertyChangedEventArgs e)
+ private void CloneIsCheckedChanged(object sender, EventArgs e)
{
- if (e.PropertyName == nameof(AiConversationMessageVM.IsChecked)
- && sender is AiConversationMessageVM vm
- && vm.Role == BS.Shared.AiConversationMessageRole.Assistent)
+ if(sender is AiConversationMessageVM vm)
{
- var changedItem = (AiConversationMessageVM)sender;
- int index = VMList.IndexOf(changedItem);
+ int index = VMList.IndexOf(vm);
- if (changedItem.IsChecked)
+ if (vm.IsChecked)
{
- for (int i = 0; i <= index; i++)
- if (!VMList[i].IsChecked)
- VMList[i].IsChecked = true;
+ for (int i = 0; i < index; i++)
+ {
+ VMList[i].SetIsChecked(true);
+ }
}
else
{
for (int i = index - 1; i < VMList.Count; i++)
- if (VMList[i].IsChecked)
- VMList[i].IsChecked = false;
+ {
+ VMList[i].SetIsChecked(false);
+ }
}
}
}
+
+ //private void Item_PropertyChanged(object sender, PropertyChangedEventArgs e)
+ //{
+ // if (e.PropertyName == nameof(AiConversationMessageVM.IsChecked)
+ // && sender is AiConversationMessageVM vm
+ // && vm.Role == BS.Shared.AiConversationMessageRole.Assistent)
+ // {
+ // var changedItem = (AiConversationMessageVM)sender;
+ // int index = VMList.IndexOf(changedItem);
+
+ // if (changedItem.IsChecked)
+ // {
+ // for (int i = 0; i <= index; i++)
+ // if (!VMList[i].IsChecked)
+ // VMList[i].IsChecked = true;
+ // }
+ // else
+ // {
+ // for (int i = index - 1; i < VMList.Count; i++)
+ // if (VMList[i].IsChecked)
+ // VMList[i].IsChecked = false;
+ // }
+ // }
+ //}
}
}
diff --git a/BeWo/ViewModel/View/AiConversationChatViewModel.cs b/BeWo/ViewModel/View/AiConversationChatViewModel.cs
index 6c5814632..021d4fe65 100644
--- a/BeWo/ViewModel/View/AiConversationChatViewModel.cs
+++ b/BeWo/ViewModel/View/AiConversationChatViewModel.cs
@@ -346,7 +346,7 @@ namespace BeWo.ViewModel.View
{
foreach (var message in ListVM.SelectedVM.Messages.VMList)
{
- message.IsChecked = true;
+ message.SetIsChecked(true);
}
IsCloneOpen = true;