iT邦幫忙

2024 iThome 鐵人賽

DAY 19
0

Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~

在本系列文會展開使用 Avalonia UI 技術所建立的 TopAOAIConnector App 。由於使用 Avalonia UI 可以很快速的進行各平台的 桌面 應用程式開發,並且透過此 TopAOAIConnector App 來串接 Azure OpenAI Service 時所需的功能研究。

本篇是 就是要來點 A.I. 的 TopAOAIConnector App 系列文的 EP19。


EP 18 已經有設計了 Combox 可供選擇不同的系統角色扮演 Prompt,但目前在選擇後並沒有任何作用。

在本回就來看看該怎麼處理吧~~~

Avalonia UI 的 Combox 本身有設計 SelectionChanged 的事件可供註冊使用,但為了保持 MVVM 的處理,這邊要來安裝一個 "Avalonia.Xaml.Behaviors" 套件,讓透過使用 "XAML Behaviors" 的規劃達到與 UI 互動的效果。

在 NuGet 套件管理員當中搜尋與安裝,如下圖紅框所示:
01-1

在專案當中安裝完成:
01-2

接著,找到 Views/ChatPageView.axmal 當中的 ComboBox 標記,在其標記當中加入以下標記:

<Interaction.Behaviors>
    <ValueChangedTriggerBehavior Binding="{Binding SelectedSystemRole}">
        <InvokeCommandAction Command="{Binding SelectedCommand}" />
    </ValueChangedTriggerBehavior>
</Interaction.Behaviors>

如下圖紅框所示:
02

其中的 InvokCommandAction 所 Binding 的 Command 則是前一回 EP 17 中在 ChatPageViewModel 所設計的 Selected 方法,透過 RelayCommand 的擴充而成為 SelectedCommand。

所以上述的 "Interaction.Behaviors" 概念上就是若 SelectedSystemRole 的值有變化時則會執行 SelectedCommand。

接著可以來偵錯並執行(F5)看看:

選取 Chat 當中的 ComboBox 選項。
03-1

變換所選取的項目時,Visual Studio 偵錯時的輸出窗格,顯示 "Selected..."。
03-2

選取 Chat 當中的 ComboBox 選項。
03-3

變換所選取的項目時,Visual Studio 偵錯時的輸出窗格,顯示 "Selected..."。
03-4

而在 ViewModels 當中的 ChatPageViewModel 找到原本設計的 Selected 方法,並再加入下列程式碼:

ChatText = $"Welcome to TopAOAIConnector!{Environment.NewLine}";

如下圖紅框所示:
04

配合變換不同的系統角色扮演時,就會把先前的對話資訊從 Chat 頁面 UI 上移除。

若要再擴充 UI 讓 Chat 的系統角色扮演可以自行自訂的話也不是不行。

但這就看要如何搭配設計囉~~~


上一篇
EP 18
下一篇
EP 20
系列文
就是要來點 A.I. 的 TopAOAIConnector App30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言