EA_OnContextItemChanged for multi-selection - c#

I use Geert Bellekens' template in order to create Sparx Enterprise Architect Add-Ins, but the question should be valid for the API in general. EA_OnContextItemChanged does not react to selection of multiple items. What would be an appropriate way to react to such multi-selections?

For me the event is called on selection of multiple items as well, however it is called only once when you select multiple items, not for each item individually.
So once the event has been called you can use Repository.GetTreeSelectedElements() to get the set of elements selected in the project browser, or Diagram.SelectedObjects() to get those selected on a diagram.

Related

Best way to lazy load with TemplateStudio WinUI ListDetailsView

I started a project using TemplateStudio for WinUI (C#) 5.2. It uses the CommunityToolkit ListDetailsView Control for a "List Details" page.
What is the best way to load additional data when a user selects something from the list of results? I thought I would add two more properties to my ViewModel (one to handle the data, one to show a busy animation while the data is loading, both using ObservableObjects SetProperty), when the selected gets changed I fetch the data async for the selected item and update the ViewModel properties accordingly.
I can't seem to find a way how to access this data from the DetailsViewControl, and I'm not sure I do it the correct way anyway.
If I add a property to my model and change the value on changing the selected the data gets added, but the UI doesn't update itself (I tried _selected and Selected). Only when selecting another item from the results and going back to the previous shows the value.
What would be the best/correct way to lazy load additional data with this control? There would be about 4-5 parallel requests going on in the first release.
Later on I need a few buttons in the DetailsViewControl as well, where and how am I supposed to handle the commands?
Or am I better of not using this control and do it manually?

How to create a custom selectionmode in winforms listbox

I have a listbox in a winforms application that I would like to give a selection behavior that is different than the built in options for the control.If I choose multi-extended, I get what we are accustomed to - ability to use shift or control to select multiple items in the list. The multi-simple option lets you select individually and leave the item selected until you delect it. I'm trying to deal with a slightly different problem that could be solved by a combination of the two options. My users want to be able to use the shift key to highligh a long list and they don't want to accidentally lose their selection if they mistakenly click on one other item in the list. My thought was to keep everything hightlighted until they click a clear button. I kind of think they are asking for something that is not what Windows is meant to do and should not be allowed to do but I thought would post the question so see if anyone has done this before.

Winforms UI Dynamically Displaying Parts

I came across a tutorial and some example code for an audio converter. You select the format you want to convert to from a drop down, and when you do all sorts of options appear in a previously blank area, different options based on the format you choose. It's called Audio Converter .NET and is from same author as Audio CD Ripper .NET. I can't find the tutorial, but here is a screenshot.
See how on the right there is extra controls that are not on the left. I was experimenting trying to add another category. I added it to the dropdown, but am unsure how to make it so certain fields come up when it is selected.
I understand that they create those controls for those items, but I don't see how they call the correct one when the combo box selects something. I see controls are created, but if I try to duplicate the controls into another entry in the combo box they don't show up for either the new or old one I was duplicating from.
What's the best way to go about achieving something like this?
Thanks
The easiest way is to create the controls needed for every option in the dropdown inside a panel, and simply turn it's visibility property from false to true whenever it's corresponding option is selected using the combobox's SelectedIndexChanged event handler. (And don't forget to turn the current visible panel's visibility to false)

Custom WinForm ListBox with user-input content

I have a need to provide as options multiple objects from a particular data set, and populate a list so that an end-user can select, none,some, all, or all + possibly missing data fields (user-input).
I originally planned to extend a System.Windows.Forms.ListView to include a whitespace item that contained a checkmark, then specially handle the case where a user had clicked this blank line item.
I would like the ability to remove these user-input line items if possible. I do not have to use a System.Windows.Forms.ListView, but its design seems to best-fit this particular use.
Is there a control with this functionality already , or an attribute of the System.Windows.Forms.ListView I have missed that may handle these situtations?
---Update---
ListBox is changed to System.Windows.Forms.ListView
DataGrid sounds like it would be a good fit; otherwise I'd suggest looking at 3rd party controls.

Hiding CheckBoxes And Edit Buttons in a RadTreeList

I'm new to the "Telerik"-controls and I have a few questions! First of all, I'll give you a small resume of what we want to achieve and how I did it for now.
The customers has several clients who come to present themselves and they need to fill in their qualities (language skills, education, ....). Therefor we've created some templates (that already contains some crucial data). The templates can be hierarchical => Language Skill Dutch has two children : "Writing", "Speaking". They see that in an Hiearchical treeview (for now).
If they select the item in that tree, they automatically create a quality (with the templateid, contactid, etc...) for that type of template. Each time they call the treeview for that contact, the template who has a quality will be checked! And if they click on "Edit", they'll be able chaging some info of the quality.
That's in short what it does now and what's behind it. Now, they wanted a nicer looking method without having popups and such (everything in one screen). Then i found the "RadTreeList" of telerik. But for now I'm having the following problems :
The root of the tree can't be selected (best would be that the checkbox is hidden) => how do I achieve this?
Is it possible to hide the "EDIT"-button on the root? The root should never be selected on his own (no qualities for root elements).
So the big question, how can I take an item while looping through the whole treelist collection and say that I don't want to show checkbox and such?
With my treeview I iterated through all the nodes and then I did the needed modifications. But 1 => It was slow, 2 => It looked that nice, 3 => It didn't match they look of the CRM 2011.
What i've already achieved is showing everything hiearchical and select the "Node-Templates" (if I can call it so) that contains Qualities.
Hopefully you have enough info... If there are better alternatives, I'm open for everything, but it's kind off urgent, cause we'll have a demo-session soon :)
Info => It has to be in ASP.NET (C#)
It is true that you cannot select the 'root' of the treelist, but you can place an item in the first column to add new items at root level as illustrated here: http://demos.telerik.com/aspnet-ajax/treelist/examples/dataediting/net35automaticdataediting/defaultcs.aspx.
To hide the edit button for root level items, listen to the ItemCreated event, locate the edit button in the root items only and set its Visible property to false. This should work for checkboxes or other server controls inside the treelist rows and you do not have to perform explicit loops through the items later on.

Categories

Resources