I’m making a chart control, which currently is just a UserControl within a larger project folder, but I wonder if/how it’s possible to pull it out to be used as control for multiple projects. I guess then i must put it in it’s own project only containing the control? (I never really made a generic User Control before, only had them within the projects)
The issue in this case is that the chart control is dependent upon a custom class TimeSeries which is part of the business logic of the bigger project. Updates within that class fires events that the user control listens to, to update the chart. This TimeSeries class will also be present in other projects that use the control, but obviously it will not be the “same” class..
So this means I can not simply separate out this user control as it is. But what does this mean, do I have some bad structural practices here? How would you suggest to proceed with this?
When putting the UserControl in its own project also create an interface:
Then in your main projects that have their own TimeSeries:
Then your UserControl should either take an ITimeSeries in its constructor or have public field/property of type ITimeSeries which can be set by whatever project is using it. That way when it needs to use the TimeSeries it doesn’t care which implementation it is using.