Objects To Interface With The GUI Instead Of List(Of T)?
Mar 9, 2010
I have started using BindingList(Of T) for my generic collections whenever I need the objects to interface with the GUI instead of List(Of T). This has worked well for me so far but a few of my collections are stored in Dictionary(Of TKey, TValue) and there doesn't appear to be a corresponding BindingDictionary(Of T).
Has anyone else come across the necessity to use this, and how did they achieve it? Should I implement this myself? (How?) or is there a better solution already available?
I have an object (MyObj) that itself will hold a List of other objects of various types and I want to count them as they are added to MyObj.That's the simple explanation, anyways...I have an Interface (MyInterface) that all sub-objects agree to. MyObj has a List(Of MyInterface) property that all the sub-objects are added to. MyInterface will expose a property that lets me figure out what subtype each object is (the sub-objects do not inherit from MyObj at all).
But I want to count these sub-objects as they are added to the list, and I'm trying to find a good way to do it. I don't need to worry about decrementing the count, as I am going to mimic the behavior of String and just create a new instance of MyObj if it ever changes, so all my counts will start from 0. This'll hit the garbage collector a bit, but I think this will allow for simpler (and safer) code. The only sane way I can think of to count objects is a very large structure in MyObj that uses bytes to hold the count (I will never have more than 255 of any given sub-object in the list in MyObj). But, even using bytes, this structure will be about 100-200 bytes big in memory (I have that many sub-objects), and I anticipate having a fair amount of MyObj copies running around, too.
I'll also need a large Select Case to know which count property to increment when a new sub-object is added. This seems to be a bit ugly, though I've used this approach several times already.What I am wondering is, instead of counting each object as it is added to the list, is there some way to query the list and count only the objects of a specific type? I wouldn't need to store this anywhere, since it would be dynamic, like querying a database and asking for a count of a specific column or type of record.I suspect Linq can do this, but Linq is also quite slow. Are there other approaches? Perhaps a predicate of some kind?VB (I am not a C# guy):
From i in MyObj.MyList Group i by i.GetType into g Let c as Int32 = g.Count() And that's it so far. I am still googling, but I am getting way too many C# and SQL references.
I am new to .Net Programming and would like to know if Reflection is suitable for traversing an Object to discover Collections within an instance of a class. I am working with the Microsoft.SqlServer.Management.Smo Namespace.
The plan is to connect to a database, determine what collections exists, then for each of those collections, if the Collection exposes objects which implement the IScriptable Interface, generate a script for the object.How do i do the following (This is pseudo-code as I am seeking assistance with using reflection or some other method to do the following)
[Code]...
I would like to enumerate all objects in db with one function if possible
I would like to create list of child objects from list of parent object. Like If i have list of bookingroom which has one member room then i would like to create list of room from it.
eg. code:
Dim BookingRoomList As List(Of BookingRoom) = New List(Of BookingRoom) Dim RoomList As List(Of Room) = New List(Of Room) BookingRoomList = BookingRooms.FillGrid()
[Code]....
Is there any short cut method instead of iterating over for earch?
All my data objects implement an interface IFillable
Public Interface IFillable Sub Fill(ByVal Datareader As Data.IDataReader) End Interface
In the objects themselves you will typically see something like
Public Class Supplier Implements IFillable
[Code]...
Now here is the tricky bit. Given that all my property names WILL ALWAYS match my database column names what I want to do is using reflection generate the fill method at compile time and infer the types and column names for the datareader.I am assuming I will need to structure this functionality as some sort of a tool/vs plugin? What I am looking for is guidance on the best way to go about this.
PS: BTW: Obviously I could easily do this using reflection at runtime but I dont want to take the performance hit for it (Although theoretically if I could cache the values somehow (static class?) it might not be too bad).
I need to let the end user move and resize objects (like a textbox or button). There are several examples that demonstrate this in VB, but not in VB Express 2008, based upon VB.net.It looks like earlier you needed to access Windows API, but these calls does not work in VB.net. I understand that these call are replaced by "native" .net calls, but I cannot find any that does the job.
A typial example from old VB is:
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
I have a class called Tree, it has an arraylist called alTreeNodes. alTreeNodes is an arraylist of TreeNode class. Since I am using ISerializable Interface, I have to provide a specific constructor. I know how to write it for string parameters such as name_value, but how should i do with arraylist of object then? See "???" in the code blog before.
Protected Sub New(ByVal info As SerializationInfo, _ ByVal context As StreamingContext) If info Is Nothing Then
I will get an error message. I tried something like
Code: Public ObjectPoint As PointF Dim cpoint As New PointF() cpoint.ObjectPoint = New PointF(startX, startY) e.Graphics.DrawEllipse(Pens.Blue, cpoint.ObjectPoint, 0.4, 0.4)
but it didn't work for the location and the circle size. How to draw a circle(and rectangle) by using floating point numbers?
I need two seperate lists, which every item is Integer, String, Bitmap - and one which every item is Integer, String String. However I don't know how to do this, or even where to look - I've googled for custom objects and custom object lists. What I'm trying to do is this.Custom Object1 is Integer, String, Bitmap Custom Object2 is Integer, String, String
In one thread I'll be adding items to List1(Of Object1), and processing them, and adding the results to List2(Of Object2), however I need to be able from other threads to look at the list and say only give me the items where Integer = (my thread ID), is this possible? Any help, or even links to information that would be relevant to this request would be helpful?
Limited to using v2.0 of .Net framework (we use VB.net) due to environmental constraints on our servers.I've got an ASP.net webpage which pulls data from a webservice that performs checks on user accounts in active directory. Operators can check multiple accounts at one time using the web interface. The webservice returns a list(of AccountCheck) objects which themselves contain single properties like username, email address, and List(of AccountError) objects which contain multiple properties.[code]What I want to do is using some kind of repeater, create multiple panels or divs which contain labels showing the username, email etc, and a gridview which has the accounterror list bound to it to show all the errors. The users could be checking 2, 5, 7 accounts at once, and is dynamic.
I have an Object structured as follows:[code]I thought this would work but I keep getting the following error: Object reference not set to an instance of an object.
just needed to get my head round something. Say I have a class 'myClass' with properties ID and Name. Now say I have 2 lists of objects of this type as follows:
Dim list1 as List(of myClass) = GetList1() Dim list2 as List(of myClass) = GetList2()
What I want is to 'intersect' (this may not be the right word!) the two sets of data by the Name property, but bring back the ID property from list1. A suitable database analogy would be if list1 and list2 were tables, I'd want to do a left join from list1 to list2 on the Name field.
The scenario is this, I have several variables that are set as a list(of objects). The values for these lists are populated during code via a SQL query. I want to be able to take these values and then use them within another SQL query. Each time the program runs the values will be different and there will be more or less within the list.
I have a procedure in VB.net using VS.net 2008 which will get the list of Orders and build a XML file with the list of Orders as shown in the code below: As the number of Orders is getting huge, I want to build the XML file for every 500 Orders
[Code]....
Instead of building XML for all the records I want to create XML for each 500 records. I tried the following code and it is throwing an error saying Expression is of type Orders which is not a collection type.
I have to ask my first question at some point, so here she goes.I am trying to create a dynamic list of objects. The objects will have several types (String, Integer) associated with them. Currently I am forming a Collection as I instantiate new objects.Is there a prefered to map this collection to, say, a Datagridview? Will I have to Iterate through the collection and add the rows at each iteration?Would I be better served using an ArrayList or something else over a Collection?
I am implementing IDisposable for a class and while disposing there is a internal list of disposable objects. Should I be disposing those object by looping through them.
public Class MyDisposable Implements IDisposable private _disposbaleObjects as new List(of OtherDisposables)
I have a question about locating a particular object in a generic list. I have 2 lists, one contains a list of every song in a library and the other contains only copies of some the those elements that are added to a playlist. How would I locate and change a value of an particular item in a list by comparing one of their variables such as name? Or find it's index in the masterlist.
I have a List of objects shared by multiple threads, it sometimes generate IndexOutOfRangeException when trying to Clear. While searching for solution I found that I should use SyncLock while accessing the List. But my question if what is the importance of lockObject in SyncLock block E.g. while clearing myList
Can I use Synclock myList myList.Clear End SyncLock or lockObject should be different from myList?
What I think about sysnclock is "lock is obtained for object specified as lockObject". What if I specify list to be cleared as lockObject, shouldn't the compiler supposed to obtain the exclusive access to list before clearing it ?