Har ett antal klasser som håller inställningar för en applikation, för att unvika massa jobb med att göra fomulär för varje klass försöker jag hitta ett sätt att genera dessa automatiskt. Själva koden för att göra detta är egentligen inget problem utan jag försöker komma på ett snyggt och bra sätt att definera vilka properties som skall vara tillgängliga att ändra från forumläret. Jag är inte helt med här. Sorry att jag inte svarat tidigare men var upptagen på förmiddagen. Det jag kommer att tänka på spontant är ett dataset med värde för vilken sorts kontroll det ska vara sammankopplat med namn på det som ska kollas. Detta dataset fyller från xml-filen och går igenom och för varje fält så skapar du lämplig kontroll och gör de kopplingar som behövs... hoppas du förstår lite vad jag menar. Hinner inte svara mer nu. Hum ok. Det låter som mitt förslag ungefär, med den stora skillnaden att du lägger det separat, vilket jag håller med om är det bästa. Absolut, dock kvartstår problemet hur jag just anger kontroll samt datakälla för denne, men ska kolla om jag kan få några idéer från de projekt du nämnde. "Jag hade tänkt att försöka använda attributes för att ange kontroller etc, vad talar för att använda XML-fil i stället?" Tror att attributer lämpar sig bättre för mitt ändamål då slutkund inte kommer behöva ändra layout utan den skall vara låst. Blir dessutom smidigare vid "deploy" utan extra-filer.Dynamiska formulär
Har tänkt att använda ett interface för klassen med metoder såsom Save och Load och sedan använda attributer för att styra properties i klassen. Dock har jag problem att bestämma hur jag ska göra med properties där jag vill att användaren skall få välja mellan värden, hur definerar jag detta med mina attributer? Har funderat på två lösningar, antingen anger man på något sätt datakällan och låter formuläret vara smart och välja rätt kontroll, eller bygger man kontroller som har som specifik uppgiift att visa de värden jag vill. Tankar/idéer?Sv: Dynamiska formulär
Du har klasser som gör olika saker? eller har du klasser som tillsammans genererar det dynamiska formuläret utifrån en datakällas innehåll?
Där vill du nu styra via vilken datakälla datan skall hämtas?
Skriv gärna ner några av de krav du vill ha med så kan vi bolla utifrån dem. Blir lättare att
se en helhet och ev komma med idéer o tankar som vi kan bolla.
Mvh JohanSv:Dynamiska formulär
Utifrån en klass vill jag generara ett formulär där man skall kunna ändra värderna i klassen och sedan spara dessa. För att slippa göra formulär för varje klass vill jag automatiskt generera dessa on-the-fly.
Bakgrunden är att jag utvecklar ett system som det ska gå att skapa tillägg till, dessa tillägg kommer ha en .xml fil med inställningar specifika för tillägget. Klassen fungerar som en spegel av xml-filen för att kunna läsa och modifiera värdena snabbt från system.
Kraven blir således:
* Automatiskt genererat formulär som tillåter att användaren uppdaterar värden i en klass och sedan sparar dessa.
* Det ska vara möjligt att låta användaren välja mellan olika värden som i exemplet nedan, är det t.ex en Enum torde användaren välja mellan dess värden i stället för att själv skriva i en textruta.
* Validering av inmatad data,
Ett exempel:
Användaren beslutar sig för att uppdatera ett tillägg som hanterar säkerhet och vill ändra vem som är administrator.
<code>
public class Security
{
private string administrator;
public string Administrator
{
get { return administrator; }
set { administrator = value; }
}
}
</code>
Från ovanstående kod skall då ett formulär genereras. Man skulle kunna generera en textbox för detta värde och låta användaren ange namnet på administratorn, men vill i stället visa en DropDownList med alla tillgängliga användare. Där kommer själva problemet in, hur anger jag var ifrån jag vill hämta denna lista?Sv: Dynamiska formulär
/TomasSv: Dynamiska formulär
Jag hade nog gjort en xml-fil som talar om hur layouten skall vara för de olika attributen.
Bygga en enkel UI/O Mapper helt enkelt. Denna mappar objekt till UI genom en XML-fil.
Patrik Lövendhal har pillar på en egen lösning även Willson. Kanske du kan ta idéer från dem?
För på nått sätt måste du speca attributens control och detta bör du lägga separerat från din objektmodell.
Är du med hur jag tänker?
Mvh JohanSv:Dynamiska formulär
Sen kanske man inte tar in datan riktigt på samma sätt som jag föreslog när man gör så.
/TomasSv:Dynamiska formulär
Jag hade tänkt att försöka använda attributes för att ange kontroller etc, vad talar för att använda XML-fil i stället?
Hur jag läser in xml-filen, dataset eller klass spelar väl inte direkt någon roll? Jag föredrar att göra egna klasser för de ger mer kontroll över dess struktur enligt min mening, visst går det med typade dataset men inte riktigt samma sak.Sv: Dynamiska formulär
Fördelen med att lägga de i en XML-fil/databas är att du kan göra förändringar i din layout för formuläret utan att kompilera om koden. Fördelen med att ha det som attribute i koden är att du har all information sammlad på 1 ställe och slipper en massa extra filer som man måste komma ihåg när man deployar.
Det hela är en smaksak, har du bra deploymetoder/struktur bland dina filer så kan det vara en fördel att lägga det i XML-filen. Vet du med dig att du aldrig eller extremt sällan kommer att förändra din meta-data så kan det vara en fördel att lägga det som attribute. En annan fördel med att ha det i koden är att ingen klåfingring användare kommer att sabboterar din layout eller funktion genom att själv gå in i XML-filen och ändra information.
- MSv:Dynamiska formulär
Dock kvarstår problemet hur jag ska ange datakälla, har kikat på bl.a. Wilsons lösning där han ser ut att ange kontroll samt datakälla i form av en klass, antar at denne sedan fylls i en IList med hjälp av Wilson O/R Mapper.
<control member="CategoryID" label="Category" widget="ComboBox" width="200" span="1" source="Wilson.UIDemo.Entities.Category" key="ID" display="Name" clear="Clear" />
Ska testa någon liknande metod, tack för vägledningen!