Hallo,
Error 12 The item "obj\x86\Debug\Organisator.MainWindow.resources" was specified more than once in the "Resources" parameter. Duplicate items are not supported by the "Resources" parameter. Organisator
warum taucht obige Fehlermeldung in Visual studio 2008 plötzlich auf und wie beseitige ich sie, damit ich wieder compilen kann?
Ich denke, für eine solche Konstellation (einer programmiert, der andere designed), ist es immer ratsam, auf WPF umzusteigen. Dann kann der Designer nämlich die Oberflächen in einer Designsoftware entwickeln und der Entwickler kann komplett transparent den Code dazu schreiben.
Schaut euch das mal an. Ihr müsstet dann freilich ein wenig Geld für Microsoft Expression Studio (das Grafiksoftware-Paket) ausgeben.
Sauber, so kann ich ihn nich über XAML konfigurieren... ich hab ein UserControl gemacht, darin ein Button reingehaun (welcher so groß ist wie das Control). Aber denke das ist uncool^^
EDIT: Hab ein UserControl erzeugt, und im xaml und cs teilen der Klasse "usercotnrol" mit Button erstetzt.. geht wunderbar^^
ich hab das nu so geloest das ich die variable als DependencyProperty eingestellt hab - dachte es gibt ne bessere methode
<Window.Resources>
<sys:String x:Key="IDS_AA">aa</sys:String>
</Window.Resources>
<Grid>
<StackPanel>
<Button Width="50" Height="20" Content="{DynamicResource IDS_AA}" />
<local:Own Width="50" Height="70" content="{DynamicResource IDS_AA}" />
</StackPanel>
</Grid>
public partial class Own : UserControl
{
public Own()
{
InitializeComponent();
}
public static readonly DependencyProperty contentProperty =
DependencyProperty.Register("content", typeof(string),
typeof(Own), new UIPropertyMetadata(contentValueChanged));
public string content
{
get { return (string)GetValue(contentProperty ); }
set { SetValue(contentProperty , value); }
}
private static void contentValueChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
Own own = (Own)d;
// own.XXX = (string)e.NewValue; // use the value
}
}
WPF ist ein ziemlich komplexes Thema. Ich empfehle dir ein Buch, z.b. Windows Presentation Foundation Unleashed:
Windows Presentation Foundation Unleashed | ISBN: 0672328917
hustbaer schrieb:
Sovok schrieb:
wahrscheinlich weil freind auch zugriff auf alle anderen privaten elemente
bietet und so die komplette kapselung aushebelt
Das ist IMO das dümmste Argument gegen friend überhaupt. Ich persönlich mache lieber meine Klasse gegenüber EINER anderen Klasse 100% auf, als auch nur eine einzige private Funktion meiner Klasse gegenüber Gott und der Welt aufzumachen. Erst recht wenn die eine Klasse im selben Projekt lebt und auch von mir programmiert wird.
so ist es auch nicht gemeint sondern im kontext friend gegen event
wobei ein eventsystem die kapselung nicht beeinflusst und die registrierung
für ein event auf bestimmte partnerklassen beschränkt werden kann
Versuchs mal so...
Du löscht die Columns aus dem DataGridView...
Dann machst du so was wie:
ds.Tables("Test").Columns.Add("Col1")
ds.Tables("Test").Columns.Add("Col2")
ds.Tables("Test").Columns.Add("Col3")
ds.Tables("Test").Columns.Add("Col4")
ds.Tables("Test").Columns.Add("Col5")
Damit hast du der Tabelle Spalten hinzugefügt.
Jetzt fügst du Reihen ein:
ds.Tables("Test").Rows.Add("Test","Test","Test","Test","Test")
Jetzt noch:
DataGridView.DataSource = ds.Tables("Test") // nicht ds sondern die Tabelle zuweisen
und fertig.
Dem DataGridView werden automatisch die Spalten zugewiesen(du brauchst sie also nicht noch einmal in den Eigenschaften definieren).
Das Dataset sollte natürlich eine Variable sein, die in der gesamten Klasse zugänglich ist. Die Initialisierung der Tabelle und Spalten solle in der Load() Funktion geschehen.
Dann sollte alles klappen.
Ich hoffe, ich habe dein Problem richtig erkannt.
Gruss
Styx
DrBong12 schrieb:
1. Kann man ( oder muss man das so machen ? ) das wen sich die leute im Messenger regestrieren die daten auf einer MySQL datenbank geschpeichert werden ?
Eine Datenbank bietet sich an (MySQL ist ok, gäbe noch alternativen). Auf jedenfall müssen diese Daten abgespeichert werden.
DrBong12 schrieb:
2. Geht das, das die nahrichten nur ûber die IP gesendet werden ?
Man muss auch einen Port angeben. (Die IP ist sozusagen den ganzen Häuserblock und der Port ist dann die Wohnung im 27. Stock.)
DrBong12 schrieb:
3. Wen ja brauch ich dan trotzdem einen server ?
Ja, die Daten müssen an einem zentralen Ort angefragt werden können.
(Ob die tatsächliche Architektur zentral ist, ist eine andere Frage, aber für die Clients muss es so aussehen, als gäbe nur ein Server.)
DrBong12 schrieb:
Und kônnte mir dan vieleicht jemand dabei helfen weil grosse programmier kenntnise habe ich nicht und wûrde das glaub ich nie alleine schafen also wen mir jemand helfen will dan sag ich jetzt schon mal danke.
Das wäre was fürs Projekte Unterforum.
Simon
Ich habe ein WPF-Window das ich für eine AppBar verwende.Während es in der AppBar ist setze ich den Fenstersill auf none und verkleinere es um die Grösse der Überschrift,wenn es oben oder unten angedockt wird.Wenn ich die AppBar entferne und das Fensterstill in Toolwindow zurückändere,versuche ich natürlich das Fenster wieder zu vergrössern,aber das klappt nicht.
Wenn ich im Debug durchgehen wird die Grösse geändert und wen der Funktionsaufruf beendet ist wieder zurückgesetzt.
Hat jemand eine Idee woran das liegen könnte?
ABEdge Edge
{
set
{
Size s = new Size(button1.Width + 10, 20);
if (Edge == ABEdge.ABE_NONE) AppBar_Functions.RegisterBar(this);//Registriert die Taskbar
if (value == ABEdge.ABE_NONE&&Edge != ABEdge.ABE_NONE)
{
AppBar_Functions.UnregisterBar(this);//Entfernt die Taskbar
if (Edge == ABEdge.ABE_BOTTOM || Edge == ABEdge.ABE_TOP)
{
Height = ActualHeight + SystemInformation.ToolWindowCaptionHeight;
Width = 480;
}
}
else
{
AppBar_Functions.BarSetPos(this, value, s);
}
c_edge = value;
}
get
{
return c_edge;
}
}
Alle genannten Varianten lassen sich mit ASP.NET umsetzen.
Aber zu deiner Frage; letztendlich ist es egal was du nimmst. Beim Gridview kann man natürlich mit einem Index arbeiten. Aber es ist halt umfangreicher als eine normale Tabelle. Ich würde vorschlagen, du guckst dir einfach mal beides an und entscheidest selbst.
Für die Umwandlung kannst Du BinaryWriter / BinaryReader verwenden.
http://msdn.microsoft.com/en-us/library/system.io.binarywriter_members.aspx
Als Stream dann z.B. MemoryStream.
Natürlich kannst Du das ganze dann in ein byte- Array umwandeln.
Simon
Ok die Syncronisation ist natürlich wichtig beim Thread. Würde ich aber meiner Klasse nen Timer verpassen, und darin in der OnTimer Funktion was mit den klassenmembern anstellen, muss ja erst diese funktion Fertig sein, bevor eine andere Funktion der Klasse ausgeführt werden kann welche die member verändert, seh ich das richtig?