Jag har ett litet problem som egentligen inte är hela världen men som förstör helhetsbilden i projektet jag arbetar med. Har gjort en Textbox som är översättningsbar och som byter innehåll beroende på vilket språk som är aktivt. Nu kan ni kanske tycka att det är onödigt att spara textsträngar i viewstates och liknande men det måste vara så av olika anledningar. Har du en särkilt anledning till att använda en Indexer och en property med samma namn? Snyggare är det inte, om detta är den enda anledning. Desutom kommer du inte att kunna använda methoderna i C# t.ex.(inte som indexers iaf). Så om du byter till en sub + en function ditt problem kommer att lösas. Anledningen är väl att jag har en basklass som jag ärver ifrån. I basklassen, som inte är språkstyrd, är detta properties (som det väl ska vara...) Kan du dölja den med indexer med lämpligt attribut för designern? Det är lite det jag funderar på. Har testat de flesta attribut men ingenting som fungerar riktigt. Har du några förslag? Den här ser lovande ut: Mmm sett den också. Den verkar lovande men det fungerar inte. Tror inte det har med indexet att göra alls. det fungerar på en annan indexerad. Det jag tror ställer till det är att jag overridar propertyn och sen overloads på propertyn med indexet. Det är det enda som skiljar det fungerande exemplet och det här åt. Har jag skrivit på fel sätt? Det blir inte fult alls. Det är annat funkionalität. Enligt min menning du overlagrar av fel anledning. Overload på overridden property
Det är såhär att den här textboxen ärver från en basklass som i sin tur är ärvd från ASP.Net's textbox. I basklassen ligger
Public Overridable Property OriginalLanguageText() As String
Get
Return ViewState("OriginalLanguageText")
End Get
Set(ByVal value As String)
ViewState("OriginalLanguageText") = value
End Set
End Property
I den översättningsbara textboxen overridar jag denna på precis samma sätt. Den hämtar ut det nuvarande aktiva språkets språksträng och visar i rutan. Inga problem.
Nu kommer dock problemet...
Public Overloads Property OriginalLanguageText(ByVal language As String) As String
Get
Return GetOriginalLanguageTextString(language)
End Get
Set(ByVal value As String)
SetOriginalLanguageString(language, value)
End Set
End Property
Denna är till för att hämta på ett specifikt språk (inte nödvändigtvis aktivt alltså). Det fungerar bra. Visual studio klagar inte och sidorna går att köra med önskat resultat.
Dock när man är i Source-läget i designern (asp:textbox t.ex.) så kan den inte ladda in mina kontroller pga detta jag just skrivit. Om jag kommenterar bort det fungerar det klockrent. Något går fel vid inläsningen. Hur ska jag göra? Någon som kan hjälpa?Sv: Overload på overridden property
Mvh,
TibiSv:Overload på overridden property
Så det känns lite fult att använda sub och function istället. Det ÄR ju properties i basklassen men i den här krävs det lite extra funktionalitet för att det ska gå att använda korrekt.Sv: Overload på overridden property
Sv:Overload på overridden property
Sv: Overload på overridden property
http://bytes.com/forum/thread270698.htmlSv:Overload på overridden property
EDIT:
Testade nu att sätta detta på basklassens properties (som den här overridar)
Då fungerar det. Kan det innebära några andra problem?Sv: Overload på overridden property
Mvh,
Tibi