@@ -19,21 +19,42 @@ To bind the Chat to data, set its `Data` parameter to an `IEnumerable<T>` where
19
19
> caption Basic data binding
20
20
21
21
```` Razor
22
- <TelerikChat Data="@Messages "
22
+ <TelerikChat Data="@ChatData "
23
23
AuthorId="@CurrentUserId"
24
- OnSendMessage="@HandleSendMessage ">
24
+ OnSendMessage="@OnChatSendMessage ">
25
25
</TelerikChat>
26
26
27
27
@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()
29
38
{
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
+ }
33
52
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)
37
58
{
38
59
var newMessage = new ChatMessage
39
60
{
@@ -43,35 +64,30 @@ To bind the Chat to data, set its `Data` parameter to an `IEnumerable<T>` where
43
64
Timestamp = DateTime.Now
44
65
};
45
66
46
- Messages .Add(newMessage);
67
+ ChatData .Add(newMessage);
47
68
}
69
+
70
+ #endregion
71
+
72
+ #region Class Declarations
48
73
49
74
public class ChatMessage
50
75
{
51
76
public string Id { get; set; }
52
-
53
77
public string AuthorId { get; set; }
54
-
55
78
public string AuthorName { get; set; }
56
-
57
79
public string AuthorImageUrl { get; set; }
58
-
59
80
public string Text { get; set; }
60
-
61
81
public string MessageToReplyId { get; set; }
62
-
63
82
public string Status { get; set; }
64
-
65
83
public bool IsDeleted { get; set; }
66
-
67
84
public bool IsPinned { get; set; }
68
-
69
85
public DateTime Timestamp { get; set; }
70
-
71
86
public List<string> SuggestedActions { get; set; }
72
-
73
87
public IEnumerable<FileSelectFileInfo> Attachments { get; set; } = new List<FileSelectFileInfo>();
74
88
}
89
+
90
+ #endregion
75
91
}
76
92
````
77
93
@@ -98,24 +114,44 @@ The Chat component provides field mapping parameters to work with different data
98
114
The Chat component automatically reflects changes to the bound data collection. You can add, modify, or remove messages programmatically:
99
115
100
116
```` Razor
101
- <TelerikChat @ref="@Chat1 "
102
- Data="@Messages "
103
- TextField="Content"
117
+ <TelerikChat @ref="@ChatRef "
118
+ Data="@ChatData "
119
+ TextField="@nameof(ChatMessage. Content) "
104
120
AuthorId="@CurrentUserId"
105
- OnSendMessage="@HandleSendMessage ">
121
+ OnSendMessage="@OnChatSendMessage ">
106
122
</TelerikChat>
107
123
108
124
<div style="margin-top: 20px;">
109
- <TelerikButton OnClick="@AddSystemMessage ">Add System Message</TelerikButton>
110
- <TelerikButton OnClick="@ClearMessages ">Clear All Messages</TelerikButton>
125
+ <TelerikButton OnClick="@OnAddSystemMessageClick ">Add System Message</TelerikButton>
126
+ <TelerikButton OnClick="@OnClearMessagesClick ">Clear All Messages</TelerikButton>
111
127
</div>
112
128
113
129
@code {
114
- private TelerikChat<ChatMessage> Chat1 { get; set; }
115
- private List<ChatMessage> Messages { get; set; } = new List<ChatMessage>();
116
- private string CurrentUserId = "user1";
130
+ #region Component References
131
+
132
+ private TelerikChat<ChatMessage> ChatRef { get; set; }
133
+
134
+ #endregion
135
+
136
+ #region Component Parameters
137
+
138
+ private List<ChatMessage> ChatData { get; set; }
139
+ private string CurrentUserId { get; set; } = "user1";
140
+
141
+ #endregion
142
+
143
+ #region Lifecycle Methods
144
+
145
+ protected override void OnInitialized()
146
+ {
147
+ ChatData = new List<ChatMessage>();
148
+ }
149
+
150
+ #endregion
151
+
152
+ #region Methods
117
153
118
- private void HandleSendMessage (ChatSendMessageEventArgs args)
154
+ private void OnChatSendMessage (ChatSendMessageEventArgs args)
119
155
{
120
156
var newMessage = new ChatMessage
121
157
{
@@ -126,14 +162,14 @@ The Chat component automatically reflects changes to the bound data collection.
126
162
Timestamp = DateTime.Now
127
163
};
128
164
129
- Messages .Add(newMessage);
165
+ ChatData .Add(newMessage);
130
166
131
- Chat1 ?.Refresh();
167
+ ChatRef ?.Refresh();
132
168
}
133
169
134
- private void AddSystemMessage ()
170
+ private void OnAddSystemMessageClick ()
135
171
{
136
- Messages .Add(new ChatMessage
172
+ ChatData .Add(new ChatMessage
137
173
{
138
174
Id = Guid.NewGuid().ToString(),
139
175
Content = "System notification: New user joined the chat",
@@ -142,25 +178,31 @@ The Chat component automatically reflects changes to the bound data collection.
142
178
Timestamp = DateTime.Now
143
179
});
144
180
145
- Chat1 ?.Refresh();
181
+ ChatRef ?.Refresh();
146
182
}
147
183
148
- private void ClearMessages ()
184
+ private void OnClearMessagesClick ()
149
185
{
150
- Messages .Clear();
151
- Chat1 ?.Refresh();
186
+ ChatData .Clear();
187
+ ChatRef ?.Refresh();
152
188
}
189
+
190
+ #endregion
191
+
192
+ #region Class Declarations
153
193
154
194
public class ChatMessage
155
195
{
156
- public string Id { get; set; }
157
- public string AuthorId { get; set; }
158
- public string AuthorName { get; set; }
159
- public string Content { get; set; }
160
- public DateTime Timestamp { get; set; }
161
- public string Status { get; set; }
196
+ public string Id { get; set; }
197
+ public string AuthorId { get; set; }
198
+ public string AuthorName { get; set; }
199
+ public string Content { get; set; }
200
+ public DateTime Timestamp { get; set; }
201
+ public string Status { get; set; }
162
202
public IEnumerable<FileSelectFileInfo> Attachments { get; set; } = new List<FileSelectFileInfo>();
163
203
}
204
+
205
+ #endregion
164
206
}
165
207
````
166
208
0 commit comments