@@ -19,21 +19,42 @@ To bind the Chat to data, set its `Data` parameter to an `IEnumerable<T>` where
1919> caption Basic data binding
2020
2121```` Razor
22- <TelerikChat Data="@Messages "
22+ <TelerikChat Data="@ChatData "
2323 AuthorId="@CurrentUserId"
24- OnSendMessage="@HandleSendMessage ">
24+ OnSendMessage="@OnChatSendMessage ">
2525</TelerikChat>
2626
2727@code {
28- private List<ChatMessage> Messages { get; set; } = new List<ChatMessage>
28+ #region Component Parameters
29+
30+ private List<ChatMessage> ChatData { get; set; }
31+ private string CurrentUserId { get; set; } = "user1";
32+
33+ #endregion
34+
35+ #region Lifecycle Methods
36+
37+ protected override void OnInitialized()
2938 {
30- new ChatMessage { Id = "1", Text = "Hello!", AuthorId = "user1", Timestamp = DateTime.Now.AddMinutes(-5) },
31- new ChatMessage { Id = "2", Text = "Hi there!", AuthorId = "user2", Timestamp = DateTime.Now.AddMinutes(-3) }
32- };
39+ ChatData = new List<ChatMessage>();
40+
41+ for (int i = 1; i <= 2; i++)
42+ {
43+ ChatData.Add(new ChatMessage
44+ {
45+ Id = i.ToString(),
46+ Text = i == 1 ? "Hello!" : "Hi there!",
47+ AuthorId = i == 1 ? "user1" : "user2",
48+ Timestamp = DateTime.Now.AddMinutes(-5 + (i * 2))
49+ });
50+ }
51+ }
3352
34- private string CurrentUserId { get; set; } = "user1";
35-
36- private void HandleSendMessage(ChatSendMessageEventArgs args)
53+ #endregion
54+
55+ #region Methods
56+
57+ private void OnChatSendMessage(ChatSendMessageEventArgs args)
3758 {
3859 var newMessage = new ChatMessage
3960 {
@@ -43,8 +64,12 @@ To bind the Chat to data, set its `Data` parameter to an `IEnumerable<T>` where
4364 Timestamp = DateTime.Now
4465 };
4566
46- Messages .Add(newMessage);
67+ ChatData .Add(newMessage);
4768 }
69+
70+ #endregion
71+
72+ #region Class Declarations
4873
4974 public class ChatMessage
5075 {
@@ -72,6 +97,8 @@ To bind the Chat to data, set its `Data` parameter to an `IEnumerable<T>` where
7297
7398 public IEnumerable<FileSelectFileInfo> Attachments { get; set; } = new List<FileSelectFileInfo>();
7499 }
100+
101+ #endregion
75102}
76103````
77104
@@ -98,24 +125,44 @@ The Chat component provides field mapping parameters to work with different data
98125The Chat component automatically reflects changes to the bound data collection. You can add, modify, or remove messages programmatically:
99126
100127```` Razor
101- <TelerikChat @ref="@Chat1 "
102- Data="@Messages "
103- TextField="Content"
128+ <TelerikChat @ref="@ChatRef "
129+ Data="@ChatData "
130+ TextField="@nameof(ChatMessage. Content) "
104131 AuthorId="@CurrentUserId"
105- OnSendMessage="@HandleSendMessage ">
132+ OnSendMessage="@OnChatSendMessage ">
106133</TelerikChat>
107134
108135<div style="margin-top: 20px;">
109- <TelerikButton OnClick="@AddSystemMessage ">Add System Message</TelerikButton>
110- <TelerikButton OnClick="@ClearMessages ">Clear All Messages</TelerikButton>
136+ <TelerikButton OnClick="@OnAddSystemMessageClick ">Add System Message</TelerikButton>
137+ <TelerikButton OnClick="@OnClearMessagesClick ">Clear All Messages</TelerikButton>
111138</div>
112139
113140@code {
114- private TelerikChat<ChatMessage> Chat1 { get; set; }
115- private List<ChatMessage> Messages { get; set; } = new List<ChatMessage>();
116- private string CurrentUserId = "user1";
141+ #region Component References
142+
143+ private TelerikChat<ChatMessage> ChatRef { get; set; }
144+
145+ #endregion
146+
147+ #region Component Parameters
148+
149+ private List<ChatMessage> ChatData { get; set; }
150+ private string CurrentUserId { get; set; } = "user1";
151+
152+ #endregion
153+
154+ #region Lifecycle Methods
155+
156+ protected override void OnInitialized()
157+ {
158+ ChatData = new List<ChatMessage>();
159+ }
160+
161+ #endregion
162+
163+ #region Methods
117164
118- private void HandleSendMessage (ChatSendMessageEventArgs args)
165+ private void OnChatSendMessage (ChatSendMessageEventArgs args)
119166 {
120167 var newMessage = new ChatMessage
121168 {
@@ -126,14 +173,14 @@ The Chat component automatically reflects changes to the bound data collection.
126173 Timestamp = DateTime.Now
127174 };
128175
129- Messages .Add(newMessage);
176+ ChatData .Add(newMessage);
130177
131- Chat1 ?.Refresh();
178+ ChatRef ?.Refresh();
132179 }
133180
134- private void AddSystemMessage ()
181+ private void OnAddSystemMessageClick ()
135182 {
136- Messages .Add(new ChatMessage
183+ ChatData .Add(new ChatMessage
137184 {
138185 Id = Guid.NewGuid().ToString(),
139186 Content = "System notification: New user joined the chat",
@@ -142,25 +189,37 @@ The Chat component automatically reflects changes to the bound data collection.
142189 Timestamp = DateTime.Now
143190 });
144191
145- Chat1 ?.Refresh();
192+ ChatRef ?.Refresh();
146193 }
147194
148- private void ClearMessages ()
195+ private void OnClearMessagesClick ()
149196 {
150- Messages .Clear();
151- Chat1 ?.Refresh();
197+ ChatData .Clear();
198+ ChatRef ?.Refresh();
152199 }
200+
201+ #endregion
202+
203+ #region Class Declarations
153204
154205 public class ChatMessage
155206 {
156207 public string Id { get; set; }
208+
157209 public string AuthorId { get; set; }
210+
158211 public string AuthorName { get; set; }
212+
159213 public string Content { get; set; }
214+
160215 public DateTime Timestamp { get; set; }
216+
161217 public string Status { get; set; }
218+
162219 public IEnumerable<FileSelectFileInfo> Attachments { get; set; } = new List<FileSelectFileInfo>();
163220 }
221+
222+ #endregion
164223}
165224````
166225
0 commit comments