diff --git a/wpf-toc.html b/wpf-toc.html
index 28dbf6a80..887aa4213 100644
--- a/wpf-toc.html
+++ b/wpf-toc.html
@@ -2293,7 +2293,7 @@
2025 Volume 3 - v31.*
- Weekly Nuget Release
-
- v31.2.4
+ - v31.2.5
- v31.2.4
- v31.2.3
- v31.1.23
- v31.1.22
diff --git a/wpf/AI-AssistView/Input-Toolbar.md b/wpf/AI-AssistView/Input-Toolbar.md
index 21250281f..075899adb 100644
--- a/wpf/AI-AssistView/Input-Toolbar.md
+++ b/wpf/AI-AssistView/Input-Toolbar.md
@@ -1,7 +1,7 @@
---
layout: post
title: Input Toolbar in WPF AI AssistView control | Syncfusion
-description: Learn about the input toolbar feature in the AI AssistView control, which enables users to access quick actions to input textbox responses through toolbar items.
+description: The input toolbar in AI AssistView offers quick actions via toolbar items to streamline textbox response entry.
platform: wpf
control: SfAIAssistView
documentation: ug
@@ -38,7 +38,7 @@ Use the ItemTemplate property to define the appearance and behavior of each tool
diff --git a/wpf/AI-AssistView/Open-AI.md b/wpf/AI-AssistView/Open-AI.md
index 4702e700b..9eaa78f67 100644
--- a/wpf/AI-AssistView/Open-AI.md
+++ b/wpf/AI-AssistView/Open-AI.md
@@ -1,6 +1,6 @@
---
layout: post
-title: TypingIndicator in WPF AI AssistView control | Syncfusion
+title: Open-AI in WPF AI AssistView control | Syncfusion
description: Learn about how to connect the AI AssistView control with OpenAI and chat gpt conversation experience.
platform: wpf
control: SfAIAssistView
@@ -208,4 +208,169 @@ Set the ViewModel as the DataContext for the AI AssistView or the parent window.
{% endhighlight %}
{% endtabs %}
-
\ No newline at end of file
+
+
+## Customize AI Response Rendering with ViewTemplateSelector in SfAIAssistView
+Use the [ViewTemplateSelector](https://help.syncfusion.com/cr/wpf/Syncfusion.UI.Xaml.Chat.SfAIAssistView.html#Syncfusion_UI_Xaml_Chat_SfAIAssistView_ViewTemplateSelector) property to assign a DataTemplateSelector that controls how messages (including AI responses) are rendered in SfAIAssistView. The selector can return different DataTemplates based on the message type or role (user/assistant/system), enabling rich presentations such as:
+- Markdown (via a Markdown viewer like MdXaml)
+- FlowDocument-based layouts
+- Images and custom visuals
+- HTML (via a WebBrowser control or third-party HTML renderer)
+
+This approach lets you tailor the appearance of assistant messages without modifying your data model.
+
+{% tabs %}
+{% highlight xaml %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endhighlight %}
+{% highlight C# %}
+
+public class ViewTemplateSelector : DataTemplateSelector
+{
+ public DataTemplate AITemplate { get; set; }
+
+ public override DataTemplate SelectTemplate(object item, DependencyObject container)
+ {
+ if (item is AIMessage)
+ {
+ return AITemplate;
+ }
+ return null;
+ }
+}
+
+public class AIMessage : NotificationObject, ITextMessage
+{
+
+ private string solution;
+
+ ///
+ /// Gets or sets the text to be display as the message.
+ ///
+ public string Solution
+ {
+ get
+ {
+ return this.solution;
+ }
+ set
+ {
+ this.solution = value;
+ RaisePropertyChanged(nameof(Solution));
+ }
+ }
+
+ private Author author;
+
+ ///
+ /// Gets or sets the author to be display in the message.
+ ///
+ public Author Author
+ {
+ get { return author; }
+ set
+ {
+ author = value;
+ RaisePropertyChanged(nameof(Author));
+ }
+ }
+
+ private DateTime dateTime;
+
+ ///
+ /// Gets or sets the date and time details when the message was created.
+ ///
+ public DateTime DateTime
+ {
+ get { return dateTime; }
+ set
+ {
+ dateTime = value;
+ RaisePropertyChanged(nameof(DateTime));
+ }
+ }
+
+ private string text;
+
+ ///
+ /// Gets or sets the text to be display as the message.
+ ///
+ public string Text
+ {
+ get { return text; }
+ set { text = value; RaisePropertyChanged(nameof(Text)); }
+ }
+}
+
+{% endhighlight %}
+{% endtabs %}
+
+
+
diff --git a/wpf/AI-AssistView/aiassistview_images/wpf_aiassistview_openai1.png b/wpf/AI-AssistView/aiassistview_images/wpf_aiassistview_openai1.png
new file mode 100644
index 000000000..952be87c2
Binary files /dev/null and b/wpf/AI-AssistView/aiassistview_images/wpf_aiassistview_openai1.png differ
diff --git a/wpf/AI-AssistView/open-ai.md b/wpf/AI-AssistView/open-ai.md
index 4702e700b..9eaa78f67 100644
--- a/wpf/AI-AssistView/open-ai.md
+++ b/wpf/AI-AssistView/open-ai.md
@@ -1,6 +1,6 @@
---
layout: post
-title: TypingIndicator in WPF AI AssistView control | Syncfusion
+title: Open-AI in WPF AI AssistView control | Syncfusion
description: Learn about how to connect the AI AssistView control with OpenAI and chat gpt conversation experience.
platform: wpf
control: SfAIAssistView
@@ -208,4 +208,169 @@ Set the ViewModel as the DataContext for the AI AssistView or the parent window.
{% endhighlight %}
{% endtabs %}
-
\ No newline at end of file
+
+
+## Customize AI Response Rendering with ViewTemplateSelector in SfAIAssistView
+Use the [ViewTemplateSelector](https://help.syncfusion.com/cr/wpf/Syncfusion.UI.Xaml.Chat.SfAIAssistView.html#Syncfusion_UI_Xaml_Chat_SfAIAssistView_ViewTemplateSelector) property to assign a DataTemplateSelector that controls how messages (including AI responses) are rendered in SfAIAssistView. The selector can return different DataTemplates based on the message type or role (user/assistant/system), enabling rich presentations such as:
+- Markdown (via a Markdown viewer like MdXaml)
+- FlowDocument-based layouts
+- Images and custom visuals
+- HTML (via a WebBrowser control or third-party HTML renderer)
+
+This approach lets you tailor the appearance of assistant messages without modifying your data model.
+
+{% tabs %}
+{% highlight xaml %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endhighlight %}
+{% highlight C# %}
+
+public class ViewTemplateSelector : DataTemplateSelector
+{
+ public DataTemplate AITemplate { get; set; }
+
+ public override DataTemplate SelectTemplate(object item, DependencyObject container)
+ {
+ if (item is AIMessage)
+ {
+ return AITemplate;
+ }
+ return null;
+ }
+}
+
+public class AIMessage : NotificationObject, ITextMessage
+{
+
+ private string solution;
+
+ ///
+ /// Gets or sets the text to be display as the message.
+ ///
+ public string Solution
+ {
+ get
+ {
+ return this.solution;
+ }
+ set
+ {
+ this.solution = value;
+ RaisePropertyChanged(nameof(Solution));
+ }
+ }
+
+ private Author author;
+
+ ///
+ /// Gets or sets the author to be display in the message.
+ ///
+ public Author Author
+ {
+ get { return author; }
+ set
+ {
+ author = value;
+ RaisePropertyChanged(nameof(Author));
+ }
+ }
+
+ private DateTime dateTime;
+
+ ///
+ /// Gets or sets the date and time details when the message was created.
+ ///
+ public DateTime DateTime
+ {
+ get { return dateTime; }
+ set
+ {
+ dateTime = value;
+ RaisePropertyChanged(nameof(DateTime));
+ }
+ }
+
+ private string text;
+
+ ///
+ /// Gets or sets the text to be display as the message.
+ ///
+ public string Text
+ {
+ get { return text; }
+ set { text = value; RaisePropertyChanged(nameof(Text)); }
+ }
+}
+
+{% endhighlight %}
+{% endtabs %}
+
+
+
diff --git a/wpf/Release-notes/v31.2.5.md b/wpf/Release-notes/v31.2.5.md
new file mode 100644
index 000000000..82683f8de
--- /dev/null
+++ b/wpf/Release-notes/v31.2.5.md
@@ -0,0 +1,98 @@
+---
+title: Essential Studio® for WPF Release Notes - v31.2.5
+description: Learn here about the controls in the Essential Studio® for WPF Weekly Nuget Release - Release Notes - v31.2.5
+platform: WPF
+documentation: ug
+---
+
+# Essential Studio® for WPF - v31.2.5 Release Notes
+
+{% include release-info.html date="November 04, 2025" version="v31.2.5" passed="28308" failed="0" %}
+
+{% directory path: _includes/release-notes/v31.2.5 %}
+
+{% include {{file.url}} %}
+
+{% enddirectory %}
+
+## Test Results
+
+| Component Name | Test Cases | Passed | Failed | Remarks |
+|---------------|------------|--------|--------|---------|
+| AutoComplete | 38 | 38 | 0 | All Passed |
+| ButtonAdv | 22 | 22 | 0 | All Passed |
+| CalendarEdit | 22 | 22 | 0 | All Passed |
+| CalenderEdit | 41 | 41 | 0 | All Passed |
+| CardView | 27 | 27 | 0 | All Passed |
+| Carousel | 30 | 30 | 0 | All Passed |
+| CheckListBox | 150 | 150 | 0 | All Passed |
+| ChromelessWindow | 151 | 151 | 0 | All Passed |
+| ColorEdit | 18 | 18 | 0 | All Passed |
+| ColorPicker | 114 | 114 | 0 | All Passed |
+| ColorPickerPalette | 104 | 104 | 0 | All Passed |
+| ComboBoxAdv | 126 | 126 | 0 | All Passed |
+| CurrencyTextBox | 134 | 134 | 0 | All Passed |
+| DateTimeEdit | 169 | 169 | 0 | All Passed |
+| DockingManager | 1083 | 1083 | 0 | All Passed |
+| DocumentContainer | 42 | 42 | 0 | All Passed |
+| DoubleTextBox | 345 | 345 | 0 | All Passed |
+| DropDownButtonAdv | 21 | 21 | 0 | All Passed |
+| EditControl | 198 | 198 | 0 | All Passed |
+| FastLineChart | 191 | 191 | 0 | All Passed |
+| GanttControl | 1296 | 1296 | 0 | All Passed |
+| GridDataControl | 519 | 519 | 0 | All Passed |
+| GridTreeControl | 223 | 223 | 0 | All Passed |
+| GroupBar | 66 | 66 | 0 | All Passed |
+| HierarchyNavigator | 8 | 8 | 0 | All Passed |
+| IntegerTextBox | 29 | 29 | 0 | All Passed |
+| MaskedTextBox | 20 | 20 | 0 | All Passed |
+| MenuAdv | 17 | 17 | 0 | All Passed |
+| PercentTextBox | 114 | 114 | 0 | All Passed |
+| PivotGrid | 0 | 0 | 0 | All Passed |
+| PropertyGrid | 147 | 147 | 0 | All Passed |
+| Ribbon | 2337 | 2337 | 0 | All Passed |
+| SfAccordion | 49 | 49 | 0 | All Passed |
+| SfAIAssistView | 2 | 2 | 0 | All Passed |
+| SfAvatarView | 229 | 229 | 0 | All Passed |
+| SfBadge | 8 | 8 | 0 | All Passed |
+| SfBulletGraph | 147 | 147 | 0 | All Passed |
+| SfBusyIndicator | 10 | 10 | 0 | All Passed |
+| SfChart | 1210 | 1210 | 0 | All Passed |
+| SfCirculargauge | 305 | 305 | 0 | All Passed |
+| SfDataGrid | 4734 | 4734 | 0 | All Passed |
+| SfDataPager | 16 | 16 | 0 | All Passed |
+| SfDatePicker | 118 | 118 | 0 | All Passed |
+| SfGridSplitter | 19 | 19 | 0 | All Passed |
+| SfImageEditor | 176 | 176 | 0 | All Passed |
+| SfKanban | 107 | 107 | 0 | All Passed |
+| SfLinearGauge | 27 | 27 | 0 | All Passed |
+| SfMaps | 1677 | 1677 | 0 | All Passed |
+| SfMaskedEdit | 104 | 104 | 0 | All Passed |
+| SfMultiColumnDropDownControl | 187 | 187 | 0 | All Passed |
+| SfNavigationDrawer | 60 | 60 | 0 | All Passed |
+| SfPulsingTile | 12 | 12 | 0 | All Passed |
+| SfRadialMenu | 54 | 54 | 0 | All Passed |
+| SfRadialSlider | 16 | 16 | 0 | All Passed |
+| SfRangeSlider | 11 | 11 | 0 | All Passed |
+| SfScheduler | 4685 | 4685 | 0 | All Passed |
+| SfSkinManager | 22 | 22 | 0 | All Passed |
+| SfSpellChecker | 83 | 83 | 0 | All Passed |
+| SfTextBoxExt | 21 | 21 | 0 | All Passed |
+| SfTextInputLayout | 333 | 333 | 0 | All Passed |
+| SfTimePicker | 125 | 125 | 0 | All Passed |
+| SfTreeGrid | 2965 | 2965 | 0 | All Passed |
+| SfTreeMap | 741 | 741 | 0 | All Passed |
+| SfTreeNavigator | 49 | 49 | 0 | All Passed |
+| SfTreeView | 1211 | 1211 | 0 | All Passed |
+| SkinManager | 51 | 51 | 0 | All Passed |
+| SplitButtonAdv | 15 | 15 | 0 | All Passed |
+| TabControlExt | 130 | 130 | 0 | All Passed |
+| TabNavigationControl | 9 | 9 | 0 | All Passed |
+| TabSplitter | 10 | 10 | 0 | All Passed |
+| Taskbar | 9 | 9 | 0 | All Passed |
+| TileViewControl | 128 | 128 | 0 | All Passed |
+| TimeSpanEdit | 21 | 21 | 0 | All Passed |
+| ToolBarAdv | 31 | 31 | 0 | All Passed |
+| TreeViewAdv | 284 | 284 | 0 | All Passed |
+| UpDown | 295 | 295 | 0 | All Passed |
+| WizardControl | 10 | 10 | 0 | All Passed |
\ No newline at end of file