Hallo akunz,
du könntest eine COMPUTED COLUMN benutzen. Dabei kannst du dann noch zusätzlich entscheiden ob der Wert der berechneten Spalte in der Datenbank abgespeichert wird, oder bei Bedarf (sprich bei Abfragen auf dessen) neu berechnet wird. Dabei musst du aufpassen, dass nicht jede Berechnung in die Datenbank gespeichert werden kann. z.b. ein (GETDATE() + 1) geht nicht und würde auch keinen Sinn machen. Sprich: die Berechnung muss deterministisch sein, d.h. immer den selben Wert liefern um in der Datenbank gespeichert werden zu können. In deinem Fall ist dies so.
Gruß,
Michael
Hallo Tari1988,
nein, 64-bit Anwendungen laufen nur auf 64-Bit Systemen, jedoch kannst du in VS nach Any-CPU kompilieren. Dann läuft die Anwendung auf 32bit Rechner in 32bit und auf 64bit Rechner in 64bit.
Gruß,
Michael
Hallo crank,
Bitte ich dich um die Einhaltung von 6.1 [Hinweis] Wie poste ich richtig?.
Es heisst ja "OnPropertyChanged", somit solltest du dies auch nur feuern, wenn dem so ist... Naja, das ist Geschmacksache, man kann es auch feuern wenn es sich nicht ändert, denn im Prinzip ist jede String Zuweisung auch eine Änderung, auch wenn man denselben String zuweist: [FAQ] Besonderheiten der String-Klasse (immutabler Referenztyp mit Wertsemantik)
Gruß,
Michael
Hallo Khalid,
danke, wusste ich selbst nicht dass es das gibt. Man kann aber nur die DefaultCollection verweden, oder?
Gruß,
Michael
zumal es ja für Nicht-Studenten auch nicht gerade billig ist
Seit TFS 2012 gibt es die Express Edition, welche gratis ist.
Wenn du einen TFS hast, so musst du falls dieser zuhause steht selbst dafür sorgen, dass die Datenbank regelmäßig gesichert wird. Sollte sie extern stehen wird das der Hoster für dich machen.
Für "Open Source" Projekte steht CodePlex zur Verfügung, bei dessen Dienst du dich auch an den TFS verbinden kannst.
Andernfalls ist wirkich wie pdelvo bereits sagte git auch eine gute Alternative, da man immer die gesamte Versionshistory offline hat, und auch ein und auschecken kann.
Hallo BlackMatrix,
Einfach und schnell Skydrive, Dropbox, ect.
Das richtige: Team Foundation Server (ich verwende dies auch alleine)
Wenn dies zu umständlich ist kannst du immer noch auf gratis SVN Hoster setzten.
Gruß,
Michael
Hallo Tobus,
da \ ein Steuerzeichen, " ein Identifier für Strings musst du beide Escapen. Dies machst du entweder mit \ oder du schreibs ein @ vor dem String.
Sprich:
Wenn du ein \ willst dann schreibst du \
Wenn du ein " willst dann schreibst du "
Wenn du es mit @ machst, dann schreibs du
string s = @"meinInhalt"
Demenstsprechend muss \ nicht mehr escaped werden, jedoch aber ", da " immer noch ein Identifier für Strings ist. Dies machst du dann mit doppelten "".
sprich, ich will den String ""\
//ungetestet:
//Variante1:
string s ="\"\\\"\\";
Variante2:
string s = @"""\""\";
Gruß,
Michael
Hallo theYoRecords,
Es wäre natürlich nicht schlecht wenn die Klasse von DependencyObject erbt...
genau das ist die Lösung.
Natürlich wäre es empfohlen, dass der Default Wert der DependencyProperty nicht ein int sondern ein bool sein.
Gruß,
Michael
oder Du brauchst (z.B. virtuelle) Initialisierungsmethoden ausserhalb des Konstruktors.
Dies kann ich nicht empfehlen, da die Fehlersuche dort, aus eigener Erfahrung sehr mühselig sein kann. D.h. man hat in den Kindsklassen nicht initialierte Eigenschaften die man vielleicht dort lesen möchte jedoch erst vom Kindsklassen-Konstruktor gesetzt werden. Dies ist verständlich, denn wenn der Base-Konstruktor die virtuelle Methode aufruft, so wird die Überschreibung in der Kindsklasse aufgerufen. Und dies in einem Moment, in dem der Kindsklassenkonstruktor noch nicht durchgelaufen ist.
Wenn virtuelle Methoden im Construktor aufgerufen werden, so sollen diese pure
sein, d.h. keine Eigenschaften ändern. Auf jeden Fall versuche den virtuellen Aufruf zu vermeiden.
Gruß,
Michael
Hallo dahaack,
sieh dir mal das Entity Framework bzw nHibernate an. Deine Wünsche klingen sehr nach O/R-Mappers.
Gruß,
Michael
1 & 2: Weils es so von Microsoft programmiert wurde. Sieh dir mal die LanguageProperty im Quellcode an, dann siehst du folgendes, wobei Zeile 4 die ausschlaggebende ist.
static public readonly DependencyProperty LanguageProperty =
DependencyProperty.RegisterAttached("Language",
typeof(XmlLanguage),_typeofThis,new FrameworkPropertyMetadata(
XmlLanguage.GetLanguage("en-US"),FrameworkPropertyMetadataOptions.Inherits |FrameworkPropertyMetadataOptions.AffectsMeasure));
Der Standardwert ist en-US
Hallo adeptus,
das ist da es in XAML standardmäßig so eingestellt ist. Dies kannst du sehr gut in den Metadaten der DependencyProperty LanguageProperty
erkennen. Dadurch muss du für de-DE dieses Verhalten explizit umstellen.
Dies erreichst du indem du im Constructor des MainWindow folgende Zeile einfügst:
LanguageProperty.OverrideMetadata(typeof (FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage("de-DE")));
Gruß,
Michael
Ich würde schon DBNull.Value verwende, dass dafür ist es auch da.
Bei mir geht's.
Hier ein Beispiel für den SQL Server
using(var conn = new SqlConnection(sqlConnectionString))
{
using(var comm = new SqlCommand())
{
comm.Connection = conn;
comm.CommandText = "INSERT INTO test(Id,Test) Values (1,@test)";
comm.Parameters.AddWithValue("@test", DBNull.Value);
conn.Open();
object executeScalar = comm.ExecuteNonQuery();
}
}
Bin zwar nicht in Oracle bewandert, da ich bis jetzt nur MSSQL & PostgreSQL benutz habe, aber auch in Oracle wird es so sein dass Zero = 0
und NULL
nicht dasselbe ist. Benutze DBNull.Value.
Hallo PSP_GIGA,
Wie machst du es zur Zeit. So kann man nur raten. Lies dir vorsorglich mal den Artikel [Artikelserie] SQL: Parameter von Befehlen durch.
Gruß,
Michael
Hallo,
wie wärs mit
SELECT RIGHT(DATEPART(YY,GETDATE()),2)
Gruß,
Michael
Hallo Kr0e,
nein das ist kein Bug, sondern das Resultat von ReadKey. Dieser Methodenaufruf blockiert solange du kein Input bekommst. Da die Console blockiert ist, kann sie auch nichts ausgeben.
Gruß,
Michael
Hallo brave_snoopy,
nein dies ist nicht möglich, es sei denn dein WP7 ist als MassStorageDevice freigeschaltet, dann kannst du mit dem Explorer und somit mit C# auf die Daten zugreifen. Da ich es noch nie probiert habe weiß ich auch nicht ob es damit auch möglich ist, auf Bilder, Musik und Video zuzugreifen.
Wie man das WP7 in den Windows Explorer integriert findest zu zuhauf im Internet.
Evtl. würde wir uns hier freuen, wenn du diesbezüglich Rückmeldung geben kannst, ob man dann auf Bilder etc.. zugreifen kann.
Gruß,
Michael
Hallo bammes,
Hier im Forum gibst einen Regex-Tester: On-the-fly Regex-Tester: Regex-Lab
Weiteres kann ich dir RegexBuddy empfehlen, dort kannst du den Regex debuggen, und dein Regex wird wortwörtlich "übersetzt".
Ich denke nicht dass du in deinem Regex allzu schnell den Fehler finden wirst. Versuch ihn mal langsam von links nach rechts aufzubauen, dann findest du den Fehler sicherlich.
Gruß,
Michael
Hallo scarpall,
du musst nicht andauernd prüfen ob der Editor läuft oder nicht. Mit ManagementEventWatcher bekommst du über die WMI Query Select * From Win32_ProcessStartTrace
Benachrichtigungen über das EventArrived
Event.
Hab auch einen Post im Internet gefunden welcher genau dieses Vorgehen etwas genauer beschreibt: Monitor when an exe is launched
Gruß,
Michael
Hallo MorphieX,
versuch mal: Tools=>Options=>Text Editor=>XAML=>Miscellaneous=>Auto Name Elements und dort die Checkbock deaktivieren.
Gruß,
Michael
Hallo Doltsche,
dazu gibs einen Artikel hier auf mycharp: [FAQ] Random.Next liefert eine Zeit lang die gleiche Zufallszahl - Warum? Wie geht es richtig?.
Gruß,
Michael
Hallo morph3eus,
du bindest auch nicht richtig. Wenn du an eine Resource bindest, sollte es
ItemsSource="{Binding Source={StaticResource moviesDBViewSource}}"
heißen.
Weiters ist
<my:MoviesDBDataSet1 x:Key="moviesDBDataSet1" />
und
KursProjekt.MoviesDBDataSet1 moviesDBDataSet1 =
nicht dasselbe Object.
Generell gibt das Output Fenster von Visual Studio immer Informationen über fehlgeschlagene Bindings.
Sieh dir mal Tutorials zu Binding an, dazu findest du hundete im Netz. Weiteres versuche einfache Bindings zu erstellen und zu experimentieren. Versuche ein einfaches Beispiel, welches in den Tutorials beschrieben wird zu verstehen und baue es etwas um oder erweitere dieses, damit du auch siehst dass du es korrekt verstanden hast. Dann erst versuche kompliziertere Sachen in WPF zu erstellen. Vor allem in WPF ist es sehr wichtig die fundamentalen Sachen 100% verstanden zu haben.
Gruß,
Michael
Hast du in der ListBox auch ein ItemTemplate, denn sonst wird ToSting() aufgerufen, und ich denke nicht dass das dies bei NotifyPropertyChanged updated.
Ich denke wir reden einander vorbei.
Sieh DeinControl
als geschlossene Box. Der kannst du nichts mehr mit Drag&Drop hinzufügen).
Jedoch kannst du DeinControl
etwas hinzufügen, wenn du diese Box öffnest. Dies machst du indem du dessen XAML öffnest und dort jene Element hinzufügst welche du möchstest.
Aber du kannst nicht in DeinWindow
welche die geschlossene "Box" DeinControl
beinhaltet dort etwas hineingeben. Ein UserControl ist eben, wie ErfinderDesRades bereits gesagt hat eine geschlossene Einheit, die eigentlich nur zum Benutzen und nicht Designen (wie die Controls) vorgesehen ist.
Wie sieht dein Binding in der ListBox aus? Hast du etwas an dem Mode
umgestellt? Sprich, OneTime, ect.
Hallo adeptus,
erbt dein Objekt von INotifyPropertyChanged?
Gruß,
Michael
Das ist weil dein "Control" immer als Ganzes gesehen wird. Dadurch ist es VS egal, ob du 100 controls in deinem Control hast oder nicht, er wird dir immer an die Grenzen des gesamten andocken.
Du kannst auch kein Icon in einen Button schieben.
Hast du es so in etwa:
<Window x:Klass="DeinWindow">
<DeinUserControl/>
</Window>
<UserControl x:Klass="DeinUserControl">
<!--CONTENT-->
</UserControl >
Dann ist es klar dass du in DeinWindow
ins DeinUserControl
(wessen Inhalt nicht dort definiert ist) nichts mehr reinschieben kannst. Das musst du dann schon in der XAML machen, in der du DeinUserControl
definiert.
Hallo Floschi,
normal geht das über die Toolbox. Drag&Drop.
Oder du schreibst selbst XAML Code.
Und nein, du musst keine Property setzen. Es sei denn du meinst Grid.Column und Grid.Row um das Element falls mehrere Spalten und Reihen sind zu positionieren.
Gruß,
Michael
Hallo adeptus,
warum referenzierst du WinForms?
Binde an SystemParameters.PrimaryScreenWidth
Gruß,
Michael
Hallo,
64 Werte pro Sekunde zu schreiben ist sicherlich nicht der Flaschenhals. Du wirst sicherlich auch keine Probleme haben, wenn du anstelle eines Arrays "normale" Komplexe Klassen erstellst. Du kannst ja mal versuchen eine Million Objekte dieser Klasse zu instanziieren und zu messen wie lange dies dauert. Auf jeden Fall keine Sekunde. Dadurch kannst du dir das fehleranfällig Arbeiten mit den Arrays sparen.
Chilic jedoch sagt das einzig richtige: Mit anderen Worten: Das menschliche Auge nimmt Animationen schon ab 17Hz wahr. Also sind meiner Meinung eine Aktualisierung der GUI alle 50ms sinnvoll.
Gruß,
Michael
Hallo winSharp93,
LiveMesh wird beim Update auf Windows Essentials 2012 nicht mehr unterstützt, da es durch SkyDrive ersetzt wird.
Wie Abt habe auch ich mir eine Sysnology DS411+II angeschafft und synchronisiere meine Daten mit der Cloud Station. Diese ist dann entweder direkt über Portfreigabe oder über eine QuickConnect ID (eine Technologie von Synology) auch ohne möglich. Somit sind meine Daten synchron und nur ich habe die Daten. Dementsprechend bin auch ich für deren Sicherheit, sprich Verlust, verantwortlich.
Ich kann damit leben, dass eine Datei welche synchronisiert wird max. 5GB groß sein darf.
Gruß und schönes Wochenende,
Michael
Ich muss das Binding 2 mal definieren
Kein Problem, du kannst auch 2x an ein Command binden.
Der Shortcut wird nicht neben dem Menüheader angezeigt
Es muss kein Shortcut im Menü angezeigt werden damit das Binding funktioniert. Das Anzeigen des Shortcuts ist nur für den User hilfreich.
Und wie lagere ich die KeyBindings am sinnvollsten aus
Irgendwann musst du sie hardcoden. Um dies zu verhindern, kannst du die ShortCuts als Resource auslagern, damit du evtl. Anwendungsweite Shortcuts definieren kannst.
z.B.
<Grid.Resources>
<Key x:Key="RefreshKey">F5</Key>
</Grid.Resources>
<Grid.InputBindings>
<KeyBinding Key="{StaticResource RefreshKey}" Command="{Binding Path=CommandRefresh}" />
</Grid.InputBindings>
Hallo,
Ein Storyboard kann auch in XAML deklariert werden. Dann kann das StoryBoard im RoutedEvent Loaded gestarted werden. Genaueres findest du unter Übersicht über Animationen
Gruß,
Michael
Im ersten Beitrag steht nicht, dass es im Zusammenhang mit MVVM verwendet wird
Ich denke in WPF kann davon ausgegangen werden, dass minimales MVVM betrieben wird, da man ansonsten wieder bei derselben Technologie wie WinForms ist.
Hallo ajott,
pack dein Frame in ein Canvas, und animiere mit dem Storyboard die AttachedProperty Canvas.Left
Ein Storyboard kann auch in XAMl deklariert werden.
Gruß,
Michael
Hallo Ace86,
Unschön finde ich, dass man den Namen, der Eigenschaft als Zeichenkette angeben muss
Es gibt MVVM-Frameworks wie Cinch bei denen es über Lambda-Expressions geht. Damit fällt das Refaktorisieren leichter. Tools wie ReSharper sind jedoch auch in der Lage die Strings in OnChanged zu refaktorisieren.
Man könnte INotifyPropertyChanged einsetzen oder eine dependency property erstellen
DP können nur in Klassen eigesetzt werden welche von DependencyObject erben, da ansonsten GetValue und SetValue fehlen. Damit haben sie in einer ViewModel Klasse nichts verloren.
Bindings funktionieren nur an
DependencyProperties.
Jedoch kann von
allen public und/oder static Properties gebunden werden.
Gruß,
Michael
Hallo Tempelbauer,
was meinst du mit
aber RelayCommand unterstützt keine InputGestures, die ich aber brauche.
Dies geht doch mit
<Button>
<Button.InputBindings>
<KeyBinding Key="A" Modifiers="Control" Command=....></KeyBinding>
<MouseBinding MouseAction="LeftDoubleClick"></MouseBinding>
</Button.InputBindings>
</Button>
Gruß,
Michael
Hallo gentleben,
wenn du deine DataReceivedhandler Methode nicht statisch machst, kannst du auf die ListBox mit dessen Namen zugreifen.
Gruß,
Michael
Hallo MHI,
habs zwar noch nie probiert, aber mir kommt dein LDAP-String etwas komisch vor. Speziell der Teil nach LDAP
und vor dem ersten CN
. Dieser ist m.E. zu viel.
Sieh mal folgender Link: DirectoryEntry.Path
Gruß,
Michael
Hallo Gogeta,
Nein, es geht nicht und es gibt auch keinen Workaround. Wie du bereits sagst, müssen beide Typen der Fremdschlüssel identisch sein.
Warum möchtest du das?
Versuch mal folgendes:
USE tempdb
CREATE TABLE table1( id NVARCHAR(10) PRIMARY KEY)
CREATE TABLE table2( id NVARCHAR(255) PRIMARY KEY, fk NVARCHAR(255) NOT NULL)
ALTER TABLE table2 ADD CONSTRAINT fk_table2_table1 FOREIGN KEY(fk) REFERENCES table1(id)
Gruß,
Michael
Hallo bredator,
soweit ich mich noch erinnern kann ist es auch möglich mit den Server Explorer von Visual Studio auch SQLCE Datenbanken zu öffnen und dessen Inhalt bearbeiten kann.
Auf jeden Fall funktioniert es mit dem "SQL Server Management Studio".
Gruß,
Michael
Hallo Mexxchen,
[...]Win-XP unterstützen sollen, können wir dort max. auf das FW4.0[...] Richtig, unter XP wird kein FW4.5 unterstützt.
Stellen wir nun im VS2012 das Zielframework auf 4.0 [...] führt dieses dann zwangsläufig zu Problemen unter XP?
Nein, denn wenn dein Zielframework 4.0 ist, wird für die mscorlib, ect auch die 4.0er hergenommen und diese funktionieren unter Windows XP.
Gruß,
Michael
Daher mein Vorschlag, dass du versuchst dich von einem anderen Rechner mit "SQL Server Management Studio" auf die Datenbank verbinden sollst. Damit wird dir auch ein Fehler mit zugehöriger Nummer angezeigt.
Hallo ecreators,
vielen Dank für deinen Einwand. Natürlich liese dies auch so machen wie du es vorgeschlagen hast. Mein Einwand dazu ist noch folgender:
Es könnte auch gewünscht sein dass wenn null
übergeben wird, dass nicht false der zu nehmende Wert ist, sondern auch true. Dazu könnte man eine Eigenschaft bool ValueIfNull
deklarieren oder den gewünschten Wert als parameter
übergeben.
Gruß,
Michael