Ja skroz zaobravio na ovu temu, malo kasnim, al eto. Preko XAML-a kad radiš imaš neke druge dostupne stvari, ali stare stvari poput magičnog direktnog bindinga kao u win formama nisu dostupne. Jedno riješenje je da koristip HierarhchicalDataTemplate, evo primjera.
C# - Problemi i rješenja
- poruka: 2.151
- |
- čitano: 610.876
- |
- moderatori:
Lazarus Long, XXX-Man, vincimus
- +/- sve poruke
- ravni prikaz
- starije poruke gore
Kako u ASP.NET Web Api napraviti POST zahtjev?Želim podatke pročitati u jednoj bazi, poslati ih na taj servis i zatim iz tog servisa pohraniti u drugu bazu?
Kako u ASP.NET Web Api napraviti POST zahtjev?Želim podatke pročitati u jednoj bazi, poslati ih na taj servis i zatim iz tog servisa pohraniti u drugu bazu?
Malo detalja, šta bi čitalo te podatke, ili misliš napraviti neki servis koji će čitati podatke, pa da taj servis proziva drugi servis za upis?
EDIT:Riješio problem.
Imam novi problem. Model šaljem kao string u JSON formatu i za serijalizaciju i deserijalizaciju podataka koristim biblioteku Json.NET(NewtonSoft). Taj model se sastoji od 3 složena tipa podataka koji se svaki sastoje od velikog broja Propertyja kao što su npr. DateTime i oni jednostavniji. Problem je u tome što se prilikom deserijalizacije model krivo deserijalizira i većina podataka se izgubi. Da li treba nešto podesiti ili je bolje umjesto jednog parametra taj model podijeliti na 3 dijela i zatim slati 3 parametra? Hvala.
JSON ima ograničenje u dužini stringa. Razbij ga na tri parametra.
Uz pravi encoding možeš poslati do 4MB teksta pmoću JSON-a. Veličina može dodatno biti ograničena tek parserom.
Da li je moguće da krivo obavi deserijalizaciju jer se taj model sastoji od 3 klase pa ne mapira dobro propertyje?
Možda je nešto to tog packega Newtonsoft, de postavi kod, kako deserijaliziraš.
Googlam malo ovaj newtonsoft, i viidm da princip deserijalizacije je da ga odradi generički, znači ti imaš neku svoju klasu koja pretstavlja model i po njoj se dobiju podatci nazad iz jsona, trebalo bi to raditi za neograničeno dubina, jedino sad kako si modele podesio.
string serializedModel = JsonConvert.SerializeObject(model);
Model deserializedModel = JsonConvert.DeserializeObject<Model>(serializedModel);
Pogledaj da li je JSON uredu nakon serijalizacije.
Ne mogu sad, ali vjerojatno nije možda nije kad ga krivo deserijalizira, možda treba podesiti neke atribute konvertera.
Radim neke osnovne zadatke, imam urađene primjere i par nejasnoća pa ako je netko voljan objasniti bio bih zahvalan!
1. Evo dva slična zadatka. Kod jednog je ispis dovoljno napisati u jednom redu (samo printf) a kod drugog se mora napisati printf, for i jos jednom printf. Koja je razlika i kako cu to ubuduce znat?
/* program inicijalizira niz od 5 cijelih brojeva, sortira ih
po velicini i ispisuje svaki broj u novom retku */
// ispis
printf("Sortirani clanovi niza su:\n");
for(i = 0; i < 5; i++)
printf("%d\n", niz[i]);
/* program inicijalizira niz od 5 cijelih brojeva, sortira ih
po velicini i ispisuje najveci broj */
// ispis
printf("Najveci broj je %d.\n", max);
2. Nije mi jasno zašto je ovdje i = - 1? I zasto je j manje ili jednako i ?
/* program ucitava cijele brojeve dok se ne unese broj 9
a nakon toga ispisuje broj sa najvecom apsolutnom vrijednoscu */
#include <stdio.h>
#include <stdlib.h>
int main()
{
int niz[100],[SIZE="4"][B] i = -1[/B][/SIZE], j, max;
// unos podataka
printf("Unesi brojeve (9 za kraj):\n");
do
{
i++;
scanf("%d", &niz[i]);
}
while(niz[i] != 9);
// trazenje broja s najvecom apsolutnom vrijednoscu
max = abs(niz[0]);
for(j = 0; j <=i; j++)
if(abs(max) < abs(niz[j]))
max = niz[j];
// ispis
printf("Broj s najvecom apsolutnom vrijednoscu je %d.\n", max);
// kraj
char z;
fflush(stdin);
z = getchar();
return 0;
}
3. Ovaj dio kod while mi nije jasan, moze li netko pojasnit?
[QUOTE]/* program unosi brojeve dok se dva puta zaredom ne unese isti broj
i zatim ispisuje koliko je brojeva uneseno */
// unos podataka
printf("Unosi cijele brojeve:\n");
do
{
i++;
scanf("%d", &broj[i]);
}
while((i < 1) || (broj[i] != broj[i - 1]));
4. Brojaci mi bas nisu jasni, zasto je ovaj brojac1 = 0? Koja je razlika izmedju = i = = ?
/* program unosi 10 cijelih brojeva i ispisuje onaj
broj koji se najvise puta ponavlja */
int broj[10], najcesci, i, j, brojac1 = 0, brojac2;
// unos podataka
printf("Unesi 10 cijelih brojeva:\n");
for(i = 0; i < 10; i++)
scanf("%d", &broj[i]);
// pronalazenje najcesceg broja
for(i = 0; i < 10; i++)
{
brojac2 = 0;
for(j = 0; j < 10; j++)
if(broj[i] == broj[j])
brojac2++;
if(brojac2 > brojac1)
{
brojac1 = brojac2;
najcesci = broj[i];
}
}
}
Kao što možete primjetit stavio sam samo one dijelove zadataka koje mi nisu jasni.
EDIT:Riješio svoj problem, hvala svima na pomoći.
Šta je bio problem? Nemoj samo reći riješio sam, bolje postavi kako. ;)
Model koji sam koristio jer bio povučen iz baze i neke druge tablice su prema toj imale vezu te je zbog toga u mom modelu bilo nekih propertyja kojih u tablici zapravo nema te je zbog toga krivo pretvarao u/iz JSON-a. Onda sam napravio nova 3 modela koji su bili slični onima iz baze, ali bez tih dodatnih propertyja i slao ta 3 umjesto jednog velikog i serijalizacija,deserijalizcija JSON-a.
Model koji sam koristio jer bio povučen iz baze i neke druge tablice su prema toj imale vezu te je zbog toga u mom modelu bilo nekih propertyja kojih u tablici zapravo nema te je zbog toga krivo pretvarao u/iz JSON-a. Onda sam napravio nova 3 modela koji su bili slični onima iz baze, ali bez tih dodatnih propertyja i slao ta 3 umjesto jednog velikog i serijalizacija,deserijalizcija JSON-a.
Pa to se riječi tako što kad bindaš model staviš i Include("imetabele"). Naravno ako radiš sa EF, a pretpostavljam da jesi. Primjer.
Ja sam imao .dbml file i preko njega kada sam dodao nove tablice su se modeli automatski dodali.
,
Pozdrav!
Ovako, imam dinamički generirani grid (uz pomoc paintEventa) u C# winforms aplikaciji,
e sad imam početni kvadratić (crvene boje na slici) pa me zanima kako najlakše da pronađem
njemu susjedne kvadratiće?
Inače pomoću miša mogu ubaciti kvadratić druge boje unutar mreže (npr. crveni ili crni)
uz pomoc ovog koda: if (rect.Contains(e.Location)) .....(ako kvadrat sadrži lokaciju miša).
Koji bi najjednostavniji način bio za izvesti tako nešto?
pz, Radim na programčiću koji izvršava osnovne računske operacije. Problem dolazi kada se taj program izvršava na dva različita sustava (en-US ili hr-HR), tj kod računanja broja sa decimalnom točkom dolazi do krivog rezultata jer "točka" kod oba jezika znači različito.
Na koji bi način osigurao da se program izvršava ispravno neovisno o kojem je postavljenom jeziku na PC-u?
Radi ovako kod operacija sa inputom:
String.Format(System.Globalization.CultureInfo.InvariantCulture, ....)
Pozdrav!
Ovako, imam dinamički generirani grid (uz pomoc paintEventa) u C# winforms aplikaciji,
e sad imam početni kvadratić (crvene boje na slici) pa me zanima kako najlakše da pronađem
njemu susjedne kvadratiće?
Inače pomoću miša mogu ubaciti kvadratić druge boje unutar mreže (npr. crveni ili crni)
uz pomoc ovog koda: if (rect.Contains(e.Location)) .....(ako kvadrat sadrži lokaciju miša).
Koji bi najjednostavniji način bio za izvesti tako nešto?
nekom zdravom logikom išlo bi ovako:
CK=crveni kvadratić
S=širina stranice
ZK=zapadni kvadratić
IK=istočni kvadratić
SK=sjeverni kvadratić
JK=južni kvadratić
ako imaš koordinate početnog crvenog kvadratića
(a pretpostavljam da imaš ako ga je obojalo u crveno)
onda je njemu
zapadni ZK.X = CK.X - S , ZK.Y = CK.Y
istočni IK.X = CK.X + S , IK.Y = CK.Y
sjeverni SK.X = CK.X , SK.Y = CK.Y - S
južni JK.X = CK.X , JK.Y = CK.Y + S
dobivene koordinate ćeš uvećati za debljinu linije ako je potrebno
sjeverozapadni SZK.Y = SK.Y , SZK.X = ZK.X
sjeveroistočni SIK.Y = SK.Y , SIK.X = IK.X
jugozapadni JZK.Y = JK.Y , JZK.X = ZK.X
jugoistočni JIK.Y = JK.Y , JIK.X= IK.X
Radi ovako kod operacija sa inputom:
String.Format(System.Globalization.CultureInfo.InvariantCulture, ....)
Ne kužim kako bi invariant pomogao, ako u hr postavkama unesemo zarez on će to spremiti kod parsiranja kao cijeli broj, ili sam nešto predvidio. Odnosno napravit će string sa zarezom koji u invariant kulturi neće biti tumačen kao decimalni separator.
Ili ovo vrijedi samo za slučaj da neovisno o kulturi unosimo točku kao decimalni separator što se u parsiranju stringa u double primjenom ovog metoda može postići.
Ako je invariant, onda je zarez uvijek zarez a točka isto tako decimalna točka. Ne gleda trenutni cultureInfo koji je postavljen.
Ako je invariant, onda je zarez uvijek zarez a točka isto tako decimalna točka. Ne gleda trenutni cultureInfo koji je postavljen.
Da, pomoću tog metoda u praksi uvijek unosimo točku kao decimalni separator neovisno o kulturi, i na taj način jesmo riješili različite kulture.
Drugi je pristup poput windows kalkulatora, očitamo separator tekuće kulture i temeljem njega i stavimo oznaku na button i izvodimo button click event. Ne damo korisniku da napravi grešku.
A korisnik svakako hoće napraviti grešku, i u hr kulturi koristiti točku kao decimalni separator, i u us kulturi zarez i u invariant kulturi zarez. Problem je što su oba znaka u svim kulturama ispravna osim što imaju različito značenje.
Zna tko kako bi ovo islo?
Task 1.
ISBNdb (http://ISBNdb.com) provides a database for bibliographic data. Write a small C# commandline program which fetches the following items from ISBNdb.org for a given ISBN:
- XML file for the books details
- One XML file for each author of this book
A documentation of the ISBN API can be found at http://isbndb.com/api/v2/docs
The signature for the program:
fetchIsbnData.exe <key> <ISBN>
The output of the program are 1+n XML files (n = number of authors). The convention for the
filenames:
- <ISBN>.xml
- <ISBN>_author_1.xml
- <ISBN>_author_2.xml
- …
- <ISBN>_author_n.xml
Select 10 books for computer science of your choice and use these ISBN for testing the program.
Task 2
Write a DTD and a Schema for the book details provided by ISBNdb. The DTD/Schema should be as accurate as possible!
Task 3.
Write a XSL transformation which converts the book details to a HTML file. The HTML file should at least contain ISBN, title, authors and publisher. In terms of layout there no bounds to your creative vein.
Zna tko kako bi ovo islo?
Znam ja.
Jel to neka zadaća ili tako neš? Daj kod, da vidimo di si zapeo, pa ćemo pomoći...
zadaća da,
nemam koda, a nisam siguran ni kako krenut...jucer sam saznao za istu a do sutra navecer trebam predat.
Instaliravam visual studio tek...:(
znam da bi trebalo izfgledat ovako:
Structure of the repository:
readme.txt
fetchIsbnData.cs
ISBNdb.dtd
ISBNdb.xsd
ToHtml.xslt
data/
- <ISBNn>.xml
- <ISBNn>_author_m.xml
...
...