Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von t0ms3n
Thema: Prüfen in welchem Netzwerk ich mich befinde
Am im Forum: Netzwerktechnologien

Wieso kannst Du den Timeout nicht ändern, hat

request.Timeout = 3000;
keinen Effekt? Was sagt die Exception nach 60 Sekunden?

Thema: Buttons in einem ControlTemplate eines UserControls verwenden
Am im Forum: GUI: WPF und XAML

Ich bin mir nicht ganz sicher wie es bei Caliburn läuft, es gibt ja wenn ich mich recht entsinne keine Command sondern nur Methoden und Properties die über die NamingConventions zugeordnet werden oder?

Ich bin mir daher an der Stelle nicht sicher wie es im Zusammenhang mit dem DataContext aussieht. Hast Du es mal mit einem "normalen" Command probiert und über z.B. die RelativeSoruce den entsprechenden DataContext gesetzt.
Irgendwelche Binding-Fehler im Debugger zu sehen?

Gruß
t0ms3n

Thema: Validierug im VM - Models in einer Collection
Am im Forum: GUI: WPF und XAML

Hmmm mir ist nicht klar, wie Code hier an der Stelle hätte helfen können.

Ich habe es nun (fürs erste) mit einer ValidationRule umgesetzt.
Dazu habe ich nun auch eine BindingGroup im VM, um entsprechend festzustellen, ob Fehler vorhanden sind. Zusätzlich noch ein Command um Änderungen mitzubekommen.
Richtig zufrieden bin ich damit jedoch nicht.

Das XAML sieht so (reduziert) aus:


<ListView x:Name="itemListView" Margin="10 4 5 4" ItemsSource="{Binding ChildItems}" HorizontalContentAlignment="Stretch" 
			SelectedItem="{Binding SelectedItem}"  BindingGroup="{Binding ItemValidationGroup}">                                                       
	<ListView.View>
		<GridView>
			<GridViewColumn Width="200" DisplayMemberBinding="{Binding Item.Name}" Header="Name" />
			<GridViewColumn Width="100" Header="State">
				<GridViewColumn.CellTemplate>
					<DataTemplate>
						<Grid >
							<ContentPresenter Content="{Binding}">
								<ContentPresenter.Style>
									<Style TargetType="{x:Type ContentPresenter}">
										<Style.Triggers>
											<DataTrigger Binding="{Binding DataContext.IsItemEditable, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" Value="False">
												<Setter Property="ContentTemplate">
													<Setter.Value>
														<DataTemplate>
															<TextBlock Text="{Binding Item.State.Name}" />
														</DataTemplate>
													</Setter.Value>
												</Setter>
											</DataTrigger>
											<MultiDataTrigger>
												<MultiDataTrigger.Conditions>
													<Condition Binding="{Binding DataContext.IsItemEditable,  ElementName=itemListView}" Value="True" />
													<Condition Binding="{Binding EntityState}" Value="Unchanged" />
												</MultiDataTrigger.Conditions>
												<Setter Property="ContentTemplate">
													<Setter.Value>
														<DataTemplate>
															<ComboBox Validation.ErrorTemplate="{StaticResource simpleErrorTemplate}" 
																	   ItemsSource="{Binding DataContext.ItemStates, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
																	  >
																<i:Interaction.Triggers>
																	<i:EventTrigger EventName="SelectionChanged">
																		<catel:EventToCommand Command="{Binding DataContext.ItemStateChangedCommand, ElementName=itemListView}" PassEventArgsToCommand="False" DisableAssociatedObjectOnCannotExecute="False" />
																	</i:EventTrigger>
																</i:Interaction.Triggers>
																<ComboBox.SelectedItem>
																	<Binding BindingGroupName="ItemValidationGroup" Path="Item.State" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
																		<Binding.ValidationRules>
																			<DataErrorValidationRule />
																			<vr:ItemStateValidationRule ValidationStep="UpdatedValue"  ValidatesOnTargetUpdated="True">
																			</vr:ItemStateValidationRule>
																		</Binding.ValidationRules>
																	</Binding>
																</ComboBox.SelectedItem>
															</ComboBox>
														</DataTemplate>
													</Setter.Value>
												</Setter>
											</MultiDataTrigger>
										</Style.Triggers>
									</Style>
								</ContentPresenter.Style>
							</ContentPresenter>
						</Grid>
					</DataTemplate>
				</GridViewColumn.CellTemplate>
			</GridViewColumn>
		</GridView>
	</ListView.View>
</ListView>

Thema: Single Instance Application mit WPF und C#
Am im Forum: GUI: WPF und XAML

Und das funktioniert nicht?how-to-set-focus-to-another-window

Thema: Validierug im VM - Models in einer Collection
Am im Forum: GUI: WPF und XAML

Wie lässt sich 1-4 sinnvoll mit dem ErrorTemplate verbinden bzw. einem IsValid?

Zitat von Parso
Manchmal ist es aber viel einfacher wenn du dem Child sein Parent bekannt machst, dort eine Eigenschaft/Methode dran hängst um die rechtlichen Childs zu prüfen und dann in Abhängigkeit des Rückgabewertes deine Statusänderungen vorzunehmen (parent.GetStateofChildsExcept(this) : status)...irgendwas in der Art. Ist zwar nicht die sauberste Lösung, aber die am wenig aufwändigsten. Architektur ist immer ein Balanceakt zwischen Pragmatismus und "Schönheit".
Schon, allerdings gefallen mir z.B. Motoren die den Status 'Kaputt' haben und der Status 'Kaputt' den Motor kennt überhaupt nicht :(.
Zitat von Parso
Kleine Nebenfrage :Wieso eigentlich "natürlich dataerrorinfo" ? Ich verwende die Dinger so gut wie nie, irgendwie fehlt mir meist der praktische Nutzen davon, der Aufwand ist weitaus größer, als eine ValidationRule zu verwenden
Mit dem natürlich wollte ich vorbeugen Hinweise auf nutze dies zu bekommen.
Über ValidationRules habe ich auch schon nachgedacht, allerdings habe ich hier nur über "Umwege" die Möglichkeit Commands zu beeinflussen.

Thema: Validierug im VM - Models in einer Collection
Am im Forum: GUI: WPF und XAML

Nein habe ich für die Childs nicht.

Zitat von t0ms3n
Ich möchte nun vermeiden, dass ich an dieser Stelle einen Service aus dem Model heraus aufrufen muss.

Welche Möglichkeiten habe ich noch, außer nicht direkt die Models als ChildItems zu haben sondern diese vorher noch in ViewModels zu wandeln (nur um den ViewModel willen :))?

Thema: Validierug im VM - Models in einer Collection
Am im Forum: GUI: WPF und XAML

Das Child kennt seinen Parent nicht. Das Problem wäre auch dann nicht vorhanden, wenn IDataErrorInfo "Item.Value" unterstützen würde.

Für einfache "Item.Value" Bindings kann man sich helfen, indem das VM eine eigene Property anbietet "ItemValue" und diese auf die Value vom Item zeigt.

Was aber wenn es eben eine Collection ist? (Abgesehen von den zwei genannten Möglichkeiten)

Es hat auch nichts mit dem INotify zu tun, denn eine einfache Validierung würde natürlich funktionieren, allerdings möchte ich einerseits keine Servicecalls im Model haben und das Model (der Status) kennt eben seinen Parent nicht.

Thema: Validierug im VM - Models in einer Collection
Am im Forum: GUI: WPF und XAML

Ja das soll das Ziel sein, allerdings soll natürlich über das ErrorTemplate im entsprechenden Control direkt der Fehler angezeigt werden.

Thema: Validierug im VM - Models in einer Collection
Am im Forum: GUI: WPF und XAML

Hallo zusammen,

ich bin auf der Suche nach einem Denkanstoß im Bereich Validierung. Selbsverständlich nutze ich bereits IDataErrorInfo.

Ich setze derzeit auf eine Kombination aus Validierung im Model und im ViewModel. Das Model übernimmt dabei einfachste Validierungen wie "Not Empty" und das ViewModel alles weitere, wo z.B. ein Service genutzt werden muss.

Ich habe nun allerdings folgende Situation.

Ich habe ein Item. Dieses besitzt diverse ChildItems welche einen Status haben. Dabei kann der Status der einzelnen Items innerhalb einer ListView geändert werden.
Zusätzlich besitzt jedes ChildItem nochmal eine Liste von Items welche auch einen Status haben.
Es muss nun beim Ändern eines Statuses geprüft werden ob alle ChildItems des ChildItems in einem bestimmten mindest Status sind.

Ich möchte nun vermeiden, dass ich an dieser Stelle einen Service aus dem Model heraus aufrufen muss.

Welche Möglichkeiten habe ich noch, außer nicht direkt die Models als ChildItems zu haben sondern diese vorher noch in ViewModels zu wandeln (nur um den ViewModel willen :))?

Gruß
t0ms3n

Thema: 2 Jahre C# Erfahrung - Was als nächstes lernen?
Am im Forum: Smalltalk

Ich hoffe es sind Schleifen und keine Schlaufen gewesen ;)

Events und Delegates sind sicherlich sinnvoll. Ansonsten gehört sicher noch Datenbankzugriff und Dateiverarbeitung noch zu den Dingen die man immer wieder benötigt.

Thema: Usercontrols untereinander binden oder binden via ViewModel (MVVM)?
Am im Forum: GUI: WPF und XAML

Hi,

es ist natürlich immer abhängig davon wie die tatsächliche Anforderung dann aussieht. Ggf. ist dann natürlich ein anderer Weg eleganter.

Nichts desto trotz kannst Du auch in diesem Fall dann z.B. mit der RelativeSource arbeiten, wenn UC2 Child von UC1 ist.
Oder dein UC2 hat eine DP welche Du dann auf das SelectedItem von UC1 bindest (bzw. VM1).

Es führen wie immer diverse Wege zum Ziel und man muss sehen welcher von Fall zu Fall der eleganteste (für einen selber) ist.

Gruß
t0ms3n

Thema: XAML Vorlage verwenden und dynamisch im CodeBehind verwenden
Am im Forum: GUI: WPF und XAML

Gib der CheckBox einen Namen und ruf Control.FindName auf. Dort dann entsprechend das Event registrieren.

Edit:
Unnötig, da das Event auch in dem Template definiert werden kann. Falls der beschriebene Weg genutzt werden sol, das Control als ControlTemplate definieren, da sonst FindName nicht funktioniert.

Thema: Usercontrols untereinander binden oder binden via ViewModel (MVVM)?
Am im Forum: GUI: WPF und XAML

Hi,

persönlich würde ich beide eigenständig binden also nicht über ElementName.

In meinen Augen wiederspricht es auch in keiner Weise dem MVVM Prinzip, sondern ist vermutlich nur der eigenen Vorliebe überlassen.

Die Frage die ich mir nur gerade Stelle: Funktioniert auch das IDataErrorInfo, wenn Du mit ElementName auf die MyDependencyProperty bindest?

Gruß
t0ms3n

Thema: *Alle* MaskedTextBoxen in einem Windows Form (auf Buttonklick) abändern
Am im Forum: GUI: Windows-Forms

Du kannst über alle Controls der Form rekursiv iterieren und prüfen ob es eine MaskedTextBox ist. Alternativ füllst Du eine Liste mit den Controls.
Oder kombinierst beides um nicht immer über alle Controls zu iterieren.

Thema: In der Konsole geschriebenes durch Eingabe verschieben
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Du suchst Console.CursorLeft.

Wenn die Zahl eingegeben wird überschreibst Du einfach den aktuellen Zeileninhalt mit dem was eingegeben wurde.


while(true)
{
                Console.CursorLeft = 0;
                Console.Write(curVal);
                key = Console.ReadKey();
                Console.Write(" EUR");

                if (Char.IsNumber(key.KeyChar))
                    curVal += key.KeyChar;
}

Thema: Versionierung / Audit Trails mit Entity Framework und Oracle ODP.NET
Am im Forum: Datentechnologien

Hmmm du könntest in deinem Repository (sofern generisch) sie defaultmäßig nicht laden.

Thema: Versionierung / Audit Trails mit Entity Framework und Oracle ODP.NET
Am im Forum: Datentechnologien

Die Relation sind genauso abgebildet. Je nach Anforderung muss natürlich beim Aufbereiten der Historie entschieden werden, ob nach der im Datensatz gefundenen Historienidee aufbereitet wird oder ob von verknüpften Datensätzen die zum jeweiligen Zeitpunkt gültigen Daten ausgelesen werden.


public class Employee
 {
   public int ID { get; set; }
   public int? OriginId { get; set; }
   public DateTime Modified{ get; set; }
   public int SupervisorID { get; set; }
   public virtual Employee Supervisor { get; set; }
   // ...other properties and navigation properties...
 }

Ändert sich direkt am Mitarbeiter z.B. der Supervisor, wird dies einfach gespeichert und ein neuer Datensatz mit den alten Daten erzeugt.

Möchte ich die alten Daten auswerten, so sind ja alle Daten vorhanden. Einzig wie gesagt bei den Relationen musst Du entscheiden ob du auf den aktuellen Datensatz der Relation gehst oder über das Änderungsdatum und OriginId auf den zu dem Zeitpunkt gültigen Datensatz zugreifst.

Bei n:m gibt es das gleiche Verfahren innerhalb der Mappingtabelle.

Thema: Versionierung / Audit Trails mit Entity Framework und Oracle ODP.NET
Am im Forum: Datentechnologien

Ich habe zuletzt die Versionierung/Historie innerhalb der gleichen Tabelle umgesetzt, da die Anzahl der Gesamteinträger eher vernachlässigbar ist und somit die Überlegung von "Archiv"-Tabellen verworfen wurde.

Dazu hat jede Tabelle die eben diese Versionierung benötigt ein weiteres Feld OriginId. Bei Änderungen am Datensatz wird über einen Trigger in der Datenbank eine Kopie des alten Datensatzen erstellt (mit gesetzter Referenz).

Zusätzlich kann es eben noch die Information des Änderungszeitpunktes geben, sodass ein genauer Ablauf erstellt werden kann.

EF-seitig hatte ich dadurch kaum Mehraufwand. Außer eben beim Auswerten dieser Informationen, dieser entsteht aber sowieso.

Thema: WPF Forms zu Klassenbibliotheken hinzufügen, aber wie?
Am im Forum: GUI: WPF und XAML

Na weil es eben keine Form gibt :).

Über das Template kriegst Du hier eben nur das Steuerelement angeboten.

Alternativ kannst Du jedoch auch entsprechend keine Klassenbibliothek als Projektvorlage erstellen, sondern z.B. die WPF User Control Library (vmtl. WPF Benutzersteuerelement Bibliothek? :)).

Dort kannst Du dann alle WPF Vorlangen verwenden.

Thema: Wildcarts (*) in DataView.RowFilter und Textbox verwenden.
Am im Forum: GUI: Windows-Forms

Was genau ist nun deine Frage? Du hast doch schon selbst bemerkt dass:

Zitat von MichaelScott
Zitat von DataView RowFilter Syntax
Operator LIKE is used to include only values that match a pattern with wildcards. Wildcard character is * or %, it can be at the beginning of a pattern '*value', at the end 'value*', or at both '*value*'. Wildcard in the middle of a patern 'va*lue' is not allowed.

Thema: WPF, MVVM und CommandBindings
Am im Forum: GUI: WPF und XAML

Man sollte dies einfach entsprechend dem jeweiligen Anwendungsfall nutzen. Habe ich ein Command was immer wieder genutzt wird bietet es sich an dafür eine entsprechende Klasse zu erstellen.

Für (einfache) spezifische Fälle sehe ich dies wie unconnected.

Thema: Button zustätzliche TriggerProperty erstellen
Am im Forum: GUI: WPF und XAML

Hi,

IsPressed und IsEnabled gibt es bereits. Wer oder was soll denn ein IsCancel sein? Was soll der Status wiederspiegeln?

Wenn du also den normalen Button erweitern möchtest, kannst du ein eigenen erstellen (von Button abgeleitet) und entsprechend erweitern.

Thema: Xamarin: App Entwicklung unter C#
Am im Forum: Rund um die Programmierung

Wenn sicht nichts geändert hat und ich mich ich mich korrekt erinner, dann kannst du mit der Starter nur für Android entwickeln und auch nur mit Xamarin Studio. Du kannst natürlich die 30-Tage Trial nutzen und den Umfang der Business(?) Version nutzen. Diese hat dann Visual Studio support.

Außerdem ist immer zu beachten, dass die Lizenz immer PRO Platform ist.

Edit:
Du kannst für IOS mit Xamarin auch auf deinem Windows Rechner entwickeln. Dazu gibt es ein Tooling mit welchem du dich jedoch mit einem MAC verbinden musst. Dieser dient dann als Build & Deployservice.

Das steht aber auch alles in den entsprechenden "Getting Started" Guides auf xamarin.

http://developer.xamarin.com/guides/ios/getting_started/

Thema: Entwurfsmuster für mehrere/viele periodisch zu aktualisierende Anzeigen
Am im Forum: Rund um die Programmierung

Häng eben z.B. eine Ebene drüber. Ein Lager hat 1000 Stellplätze. Das Lager hat entsprechend den Timer.

Thema: Style für mehrere Togglebuttons
Am im Forum: GUI: WPF und XAML

Hi,

schon In WPF, can I share the same image resource between 2 buttons probiert?

Sprich entweder BitmapImage nutzen oder x:Shared=False in den Image.

Thema: Weiterarbeiten, wenn die Ergebnisse einer (asynchronen) Methode vorliegen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wer schickt wohin irgendwelche Daten? Was ist SendCommand?

Thema: Suche MVC Beispiel für Windows Phone App [==> MVVM Beispiel suchen]
Am im Forum: Rund um die Programmierung

Hi,

versuchs mal hiermit:
Building Apps for Windows Phone 8.1: Jump Start

Oder wenns wirklich nur das sein soll was du sagst:
Window 8.1 Universal MVVM app

Ansonsten ist als Schlagwort eher MVVM zu nutzen statt MVC.

Gruß
t0ms3n

Thema: Suche Control: Seach ComboBox mit Vorschau und Gruppierung
Am im Forum: GUI: WPF und XAML

WPF AutoComplete
WPF: AutoComplete TextBox, …again
WPF Autocomplete Textbox Control

Schon irgendwas ausprobiert? Ob Grouping irgendwo unterstützt wird weiß ich nicht. Ggf. eben entsprechend erweitert.

Thema: WPF, MVVM - ListBox - Selektion leeren bei ESC
Am im Forum: GUI: WPF und XAML

Hmmm als Stichwort vielleicht EventToCommand. Hoffe das hilft dir bereits weiter.

Thema: Anchor bei elementen im Panel z. B TabControl.
Am im Forum: GUI: WPF und XAML

Und was ist nun dein Problem?

Dein geposteter Code funktioniert doch, sobald Du die genannten Hinweise nutzt und entsprechend alle festen Höhen/Breiten entfernst.


 <DockPanel LastChildFill="True" >
        <TabControl>
            <TabItem Header="TabItem">
                <Grid Background="#FFE5E5E5"/>
            </TabItem>
            <TabItem Header="TabItem">
                <Grid Background="#FFE5E5E5"/>
            </TabItem>
        </TabControl>
    </DockPanel>

Einfach noch LastChildFill auf True setzen und fertig. Falls du hier nicht mit LastChildFill arbeiten möchtest, dann ist das DockPanel einfach nicht der richtige Container.