Zdravím, mám menší trabl v silverlight aplikaci. Udělal jsem si třídu, ve které mám vytvořené seznamy ve kterých si držím jednotlivé grafické objekty. Tzn. mám tam nadeklarované mimo jiné toto:
Public _caraList As New System.Collections.Generic.List(Of System.Windows.Shapes.Line)
Public _obdelnikList As New System.Collections.Generic.List(Of System.Windows.Shapes.Rectangle)
Public _polygonList As New System.Collections.Generic.List(Of System.Windows.Shapes.Polygon)
Vždy když přidám do seznamu nový objekt, vrátím volající funkci referenci na objekt a přidám ho do canvasu na hlavním formuláři aby se vykreslil. Pokud pak z hlavního formuláře zavolám toto:
'toolbox je instance moji třídy
toolbox._obdelnikList.Item(0).Width = 50
toolbox._obdelnikList.Item(0).Height = 50
Daný objekt se na canvasu překreslí přesně tak jak chci Pokud ale chci objekt vymazat a zadám toto:
toolbox._obdelnikList.RemoveAt(0)
Nestane se vůbec nic. Item se ze seznamu opravdu vymaže, ale canvas na to nějak nereaguje. Příjde mi to divné, protože vzhledem k tomu že první případ funguje je zřejmé, že se skutečně předává reference. Musím na canvasu ještě zavolat nějakou metodu aby si uvědomil že se má překreslit, nebo je chyba v něčem jiném? Hledal jsem nějakou metodu refresh nebo repaint ale bohužel marně...
|