Telerik Forums
UI for WPF Forum
0 answers
97 views

Can you please help me to creating  a custom connect.

Can you give me a small example as shown in below picture.

Parth
Top achievements
Rank 1
Iron
Iron
 updated question on 02 Oct 2024
0 answers
122 views

Hello,

 

I have an application where I store and add messages from the database. On startup I manually ladd the last so much messages from the database.

When I initially load, all messages and TimeBreaks are displayed fine. However the last message is not in view. The Chat shows the first lines and the scroll bar is positioned at the top, not at the bottom.

When I add new messages via the inputline, the message is in view

I use Telereik 2024.3.821.462

These message are added using the followin code:

View (code behind) => SendMessage event

 private void RadChat_SendMessage(object sender, SendMessageEventArgs e)
 {
     e.Handled = true;
     var updatedMessageText = (e.Message as TextMessage).Text;
     ViewModel.AddMessage(updatedMessageText);
 }

ViewModel => AddMessages

public async void AddMessage(string updatedMessageText)
{
    Message newMessage = new Message();
    newMessage.Author = CurrentAuthor.Name;
    newMessage.MessageDate = DateTime.Now;
    newMessage.MessageText = updatedMessageText;

    newMaxMessageId = _dashboardDao.InsertMessages(newMessage);

    ReadMessages();

}

private async void ReadMessages()
{
    IsReloading = true;
    newMaxMessageId = _dashboardDao.GetMaxMessageID();

    if (newMaxMessageId > currentMaxMessageId)
    {

        IEnumerable<Message> newMessages = await _dashboardDao.GetNewMessages(currentMaxMessageId, _sharedVM.NumMessageBoardMessages);
        newMessages = newMessages.OrderBy(x => x.MessageId).ToList();

        if (newMessages.Count() > 0)
        {
            if (!IsActive)
            {
                if (_ShowNewMessages)
                {
                    numNewMessages += newMessages.Count();
                    HasMessagesData hasMessagesData = new HasMessagesData(true, numNewMessages);
                    _sharedVM.HasMessages = hasMessagesData;
                }
                else
                {
                    numNewMessages = 0;
                }
            }
            else
            {
                numNewMessages= 0;
            }
        
            NewTextMessages = new ObservableCollection<TextMessageModel>();
    
            newMessages = newMessages.Where(x => x.MessageId > currentMaxMessageId);
            NewTextMessages.Clear();
            foreach (Message message in newMessages)
            {
                if (message.Author == CurrentUser)
                {
                    NewTextMessages.Add(new TextMessageModel() { Text = message.MessageText, Author = CurrentAuthor, CreationDate = message.MessageDate });
                }
                else
                {
                    NewTextMessages.Add(new TextMessageModel() { Text = message.MessageText, Author = new Author(message.Author), CreationDate = message.MessageDate });
                }
                if (_ShowNewMessages)
                {
                    _eventAggregator.GetEvent<NewMessageShownEvent>().Publish();
                }

            }
            currentMaxMessageId = newMessages.Last().MessageId;
            OnPropertyChanged(nameof(NewTextMessages));
        }
    }
    _ShowNewMessages = true;
    IsReloading = false;
}

View (code behind) triggerd by OnPropertyChanged(nameof(NewTextMessages))

his.ViewModel.PropertyChanged += (sender, args) =>
{

    if (args.PropertyName == "NewTextMessages")
    {
        AddNewMessages();
    }
};

 

private void AddNewMessages()
{

    foreach (var newMessage in ViewModel.NewTextMessages)
    {
        if (chat.LastMessage == null)
        {
            this.chat.AddTimeBreak(newMessage.CreationDate.DayOfWeek.ToString() + " " + newMessage.CreationDate.ToString("MMMM") + " " +  newMessage.CreationDate.Day.ToString() + ", " + newMessage.CreationDate.Year);
        }
        else
        {
            if ((chat.LastMessage.CreationDate.Year != newMessage.CreationDate.Year) || (chat.LastMessage.CreationDate.Month!= newMessage.CreationDate.Month) || (chat.LastMessage.CreationDate.Day != newMessage.CreationDate.Day))
            {
                this.chat.AddTimeBreak(newMessage.CreationDate.DayOfWeek.ToString() + " " + newMessage.CreationDate.ToString("MMMM") + " " + newMessage.CreationDate.Day.ToString() + ", " + newMessage.CreationDate.Year);
            }
        }
        var textMessage = new TextMessage(newMessage.Author, newMessage.Text, "sent", newMessage.CreationDate);
        this.chat.AddMessage(textMessage);
    }
}

Jochem
Top achievements
Rank 1
 asked on 24 Sep 2024
0 answers
68 views
can you please send me a sample project to creating diagram dynamic layout algorithm using very minimum connection overlpping.
Parth
Top achievements
Rank 1
Iron
Iron
 asked on 24 Sep 2024
1 answer
99 views

Hi,

I need to add a DateField to a TableCell in a RichTextBox so that when a user clicks on the cell in the UI a calendar is displayed. 

I can see from the XAML that this is achieved by using the InsertSdtCommand with a CommandParameter of Date, how can a similar result be achieved from within the code.

Thank you.

 

 

Dimitar
Telerik team
 answered on 17 Sep 2024
1 answer
104 views

I am using DateTimePicker on WPF and I would like to know if there is a way to modify the bacjgroud color of the DateTimePicker for a couple of dates.

 

Thank you in advance.

Stenly
Telerik team
 answered on 16 Sep 2024
1 answer
184 views

Hello,

I am using a ChartSeriesProvider to chart multiple LineSeries. I would like each LineSeries to have the actual points styled instead of just being a plain line.

Styling each LineSeries is a little different since I am using a ChartSeriesProvider. 


<telerik:RadCartesianChart
	Grid.Row="2"
	Background="#FF282828">
		<telerik:RadCartesianChart.SeriesProvider>
			<telerik:ChartSeriesProvider
				Source="{Binding InspectionData}">
					<telerik:ChartSeriesProvider.SeriesDescriptors>
						<telerik:CategoricalSeriesDescriptor
							CategoryPath="InspectionDateTime"
							ValuePath="InspectionValue"
							ItemsSourcePath="CameraChartData"
							CollectionIndex="0">
							<telerik:CategoricalSeriesDescriptor.Style>
								<Style
									TargetType="telerik:LineSeries">
									<Setter
										Property="StrokeThickness"
										Value="2" />
									<Setter
										Property="Stroke"
										Value="DeepSkyBlue" />
								</Style>
							</telerik:CategoricalSeriesDescriptor.Style>
						</telerik:CategoricalSeriesDescriptor>
						<telerik:CategoricalSeriesDescriptor
							CategoryPath="InspectionDateTime"
							ValuePath="InspectionValue"
							ItemsSourcePath="CameraChartData"
							CollectionIndex="1">
							<telerik:CategoricalSeriesDescriptor.Style>
								<Style
									TargetType="telerik:LineSeries">
									<Setter
										Property="StrokeThickness"
										Value="2" />
									<Setter
										Property="Stroke"
										Value="Yellow" />
								</Style>
							</telerik:CategoricalSeriesDescriptor.Style>
						</telerik:CategoricalSeriesDescriptor>

 

This documentation says 

Currently, changing the point marks appearance could be done only via the provided API. Declarative customizations are not supported.

 

But, this documentation shows a LineSeries has property "Fill" (need to also set size) which is exactly what I want. TargetPath is different, in this example it's set to "Path" and in my xaml it's "telerik:LineSeries" because it has to be since it's in a CategoricalSeriesDescriptor.

 

How do I style the points? Is it possible?

 

Martin Ivanov
Telerik team
 answered on 13 Sep 2024
1 answer
94 views

Hello,

In Telerik, I want to create a Grid that can differentiate between two objects and adjust the row accordingly. I understand that it's possible to customize row styles and templates, but the implementation I'm aiming for is a bit more complex, and I'm encountering some difficulties.

I have an object named "Program" with the following fields:

  • String Name;
  • String Id;
  • ObservableCollection<Operation> Operations;

Additionally, I have another object called "Operation" with the following fields:

  • string OpName;
  • string PartId;
  • int NumOfRepetitions;
  • etc.

The DataGrid takes a collection of 'Program' as input.

Here's what I want to achieve:

When a program contains a single operation, I want to group the program's and operation's data and display everything in a single, non-expandable row.

When a program contains multiple operations, I want to display a parent row with the program’s data and an expandable child grid that shows one operation per row with the relative data.

Is it possible to have different set of columns per each row and have only some rows which are expandable?

Martin Ivanov
Telerik team
 answered on 13 Sep 2024
1 answer
113 views

Hi,

How can I detect if an appoint is moved?

Which event is being fired and how can I implement this in the ViewModel and View?

Thanks...

Martin Ivanov
Telerik team
 answered on 13 Sep 2024
0 answers
111 views
Hi,
in the project attached there is a very simple example of checkbox column.
I observed that the celleditended event is raised when cell lost focus if I check the box, and immediately when click on check if I uncheck it.

I need the behavior of unchecking also when checking.

Thank you
Luigi
Luigi
Top achievements
Rank 3
Bronze
Iron
Iron
 asked on 12 Sep 2024
0 answers
88 views

can you please help me to created diagram show in image for using created custom edge for "avoid connection overlap" used in Graph  dynamically.

 

Parth
Top achievements
Rank 1
Iron
Iron
 updated question on 11 Sep 2024
Narrow your results
Selected tags
Tags
GridView
General Discussions
Chart
RichTextBox
Docking
ScheduleView
ChartView
TreeView
Diagram
Map
ComboBox
TreeListView
Window
RibbonView and RibbonWindow
PropertyGrid
DragAndDrop
TabControl
TileView
Carousel
DataForm
PDFViewer
MaskedInput (Numeric, DateTime, Text, Currency)
AutoCompleteBox
DatePicker
Buttons
ListBox
GanttView
PivotGrid
Spreadsheet
Gauges
NumericUpDown
PanelBar
DateTimePicker
DataFilter
Menu
ContextMenu
TimeLine
Calendar
Installer and Visual Studio Extensions
ImageEditor
BusyIndicator
Expander
Slider
TileList
PersistenceFramework
DataPager
Styling
TimeBar
OutlookBar
TransitionControl
FileDialogs
Book
ToolBar
ColorPicker
TimePicker
MultiColumnComboBox
SyntaxEditor
VirtualGrid
Wizard
ExpressionEditor
NavigationView (Hamburger Menu)
WatermarkTextBox
DesktopAlert
BarCode
SpellChecker
DataServiceDataSource
EntityFrameworkDataSource
RadialMenu
ChartView3D
Data Virtualization
BreadCrumb
LayoutControl
ProgressBar
Sparkline
TabbedWindow
ToolTip
CloudUpload
ColorEditor
TreeMap and PivotMap
EntityFrameworkCoreDataSource (.Net Core)
HeatMap
Chat (Conversational UI)
VirtualizingWrapPanel
Calculator
NotifyIcon
TaskBoard
TimeSpanPicker
BulletGraph
Licensing
WebCam
CardView
DataBar
FilePathPicker
PasswordBox
SplashScreen
Callout
Rating
Accessibility
CollectionNavigator
Localization
AutoSuggestBox
Security
VirtualKeyboard
HighlightTextBlock
TouchManager
StepProgressBar
Badge
OfficeNavigationBar
ExpressionParser
CircularProgressBar
SvgImage
PipsPager
SlideView
AI Coding Assistant
+? more
Top users last month
Cynthia
Top achievements
Rank 1
Iron
Toby
Top achievements
Rank 3
Iron
Iron
Iron
Danielle
Top achievements
Rank 1
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Iron
yw
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Cynthia
Top achievements
Rank 1
Iron
Toby
Top achievements
Rank 3
Iron
Iron
Iron
Danielle
Top achievements
Rank 1
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Iron
yw
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?