Hallo Leute,
ich habe ein Regex-Pattern, das alle gültigen Werte matcht. Aber ich weiß nicht wie ich das Umsetzen kann, das er mir einen Treffer gibt, wenn es nicht matcht.
^([0-9]{3,5}[\-][0-9]{3,}[,][ ][0-9]{3,5}[\-][0-9]{3,}[,][ ][0-9]{3,5}[\-][0-9]{3,})
|^([0-9]{3,5}[\-][0-9]{3,}[,][ ][0-9]{3,5}[\-][0-9]{3,})
|^([0-9]{3,5}[\-][0-9]{3,})
Ich finde auch keinerlei Beiapiele, die identisch sind.
Kann mir da hemand helfen?
Also ich würde tatsächlich mit html Seiten anfangen, rein client-seitig, damit du verstehst was das ist und welche Möglichkeiten du da hast. Danach würde ich CSS miteinbinden, damit du siehst, welche zusätzlichen Möglichkeiten du hast und wie es dir die Formatierung erleichtert. Dann würde ich auch javascript nicht außer acht lassen, da dies heutzutage auch stark verbreitet ist. Und dann, dann würde ich mir die Serverseitige Sache anschauen. Denn wenn du weißt wie das ganze html-zeigs funktioniert, dann kannst du dir die verschiedenen Modelle anschauen wie MVC und Co, um für dich herausfinden zu können, mit welcher Technologie du arbeiten möchtest.
Hallo Leute,
es ist schon ne Ewigkeit her das ich mir einen virtuellen Server eingerichtet habe, von daher bin ich nicht mehr so routiniert und habe irgendwo eine Einstellung vergessen/falsch, aber ich komme nicht drauf was.
Ich habe auf VirtualBox 7.0 einen Windows Server 2016 DataCenter installiert, und will vom Host die iisstart.htm aufrufen, bekomme aber einen Timeout. ⇒ Er findet die Seite also nicht.
Meine Einstellungen:
VirtualBox:
Netzwerk: Internes Netzwerk
DHCP Server für intnet eingerichtet
Windows Server bzw. IIS
Benutzer ASPUser angelegt ⇒ Mitglied von Benutzer
Benutzer IISUser angelegt ⇒ Mitglied von Benutzer und IIS_IUSRS
Benutzer ASPUser dem Verzeichnis inetpub hinzugefügt und Rechte gegeben (Ändern/Lesen, Ausführen/Ordnerinhalt anzeigen/Lesen/Schreiben)
Anwendungspool TestPool hinzugefügt und dort bei Erweiterte Einstellungen den IISUser hinzugefügt
Bei Default Web Site unter Bindung: Typ http; IP-Adresse: 192.168.2.2; Port 80; Hostname ist leer
Dort auch bei Grundeinstellungen den Anwendungspool TestPool, und Verbinden als den IISUser zugewiesen, und bei Einstellungen testen alles grün
Bei Erweiterte Einstellungen unter Anmeldeinformationnen für den physischen Pfad den IISUser eingetragen und bei Anwendungspool steht TestPool drin
Windows Firewal kontrolliert, alles eingetragen. Testweise auch mal deaktiviert, selbe Ergebnis
Standarddokumente kontrolliert, passt alles
Ich kann das Gast-System vom Host anpingen und bekomme auch eine Antwort, allerdings wenn ich die Seite dann mit 192.168.2.2 oder 192.168.2.2/iisstart.htm aufrufen will, bekomme ich einen timeout.
Das Gast-System hat auch die angegebene ip.
Jetzt weiß ich nicht mehr was ich noch schauen kann wieso es nicht geht. Ist sicher nur ne Kleinigkeit.
Hat vielleicht jemand einen Tipp?
Danke schon mal im Vorraus...
Hallo T-Virus und danke für deine Antwort.
Die Möglichkeit mit SetColumnError finde ich jetzt auch nicht schön.
Ich habe schon gelesen dass hierfür auch das ObservableCollection-Objekt genommen wird, aber da bräuchte ich ne Liste in ner Liste.
Es gibt schon auch eine Schnittstellenbeschreibung, wie die CSV-Dateien auszusehen haben. Allerdings halten sich da nicht alle dran, und so kommt es vor, dass zusätzliche Spalten vorhanden sind die da einfach nicht hingehören. Die sollen bei der Validierung dann auch ignoriert werden.
Aber eine dynamische Darstellung von Tabellen sollte schon möglich sein, um sie dann validieren zu können.
Ich werde mal weiter rechechieren und testen, vielleicht finde ich ja eine Lösung die auch nicht zu komplex ist, denn das Vorhaben ist ja eigentlich einfach.
Sollte ich was finden, werde ich es hier reinsetzen.
Hallo an alle,
ich habe vor, csv dateien in ein datagrid zu laden. Das mache ich per drag & drop und das funktioniert auch wunderbar. Hierzu verwende ich als itemssource eine datatable, weil ich nicht weiß, wie viel Spalten in der Datei vorhanden sind. Mein Problem ist nun, dass ich die Daten anschließend validieren möchte, und bei fehlerhaften Zellen das auch farblich im datagrid darstellen möchte. Da aber die Datarow nur strings und keine eigenen objekte akzeptiert, habe ich nun das Problem, diese Zellen mittels einem Flag isValid zu kennzeichnen. Ich habe keine Idee wie ich das umsetzen kann und bin für jeden Ansatz dankbar.
Die Überprüfung findet im ViewModel statt, sollte als mvvm pattern sein.
Hab das Problem gelöst. Danke für eure Hilfe.
Das Problem war, dass er die komplette Pfadangabe haben wollte.
Hallo Abt,
wie auch immer. Der Fehler tritt nur dann auf wie ich das mit dem XML beschrieben habe.
Allerdings ist meine Hauptfrage nicht beantwortet, wie ich der HeaderColumn ein Click Command geben kann.
Mein letzter Versuch den ich gemacht habe ist über den folgenden ColumnHeaderStyle. Als Test ob er das Template auch nimmt, habe ich dem Button ein ToolTip gegeben, und der zeigt mir das auch an. Es werden aber weder Background, Foreground oder eben der Click gemacht.
Hier der Style:
<Window.Resources>
<Style x:Key="ColumnHeaderStyle" TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Background" Value="White"/>
<Setter Property="Foreground" Value="Red"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridColumnHeader">
<Grid>
<Button Content="{TemplateBinding Content}" ToolTip="Blubb">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDown">
<i:InvokeCommandAction Command="{Binding ClickCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
Hier das DataGrid
<DataGrid
x:Name="dgFileContent"
Grid.Row="1"
AutoGenerateColumns="True"
CanUserSortColumns="False"
CanUserReorderColumns="True"
AllowDrop="True"
ColumnHeaderStyle="{DynamicResource ColumnHeaderStyle}"
ItemsSource="{Binding FileDataTable.DefaultView}">
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="IsHitTestVisible" Value="False"/>
</Style>
</DataGrid.Resources>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Drop">
<i:InvokeCommandAction Command="{Binding DropCommand}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</DataGrid>
Hallo Th69,
ja, der Fehler passiert zur Laufzeit.
Ich denke aber dass ich das Problem gefunden habe, und zwar wenn im XML ein ungültiger oder unlogischer Eintrag ist, und der Compiler das nicht erkennt, dann wirft es zur Laufzeit den Fehler. Wobei die Fehlermeldung nichtssagend bezüglich XML ist.
Kommando zurück!!!
Ich habe gerade festgestellt, dass wenn ich hier:
<i:Interaction.Triggers>
<i:EventTrigger EventName="Drop">
<i:InvokeCommandAction Command="{Binding DropCommand}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="IsHitTestVisible" Value="False"/>
</Style>
</DataGrid.Resources>
noch irgendetwas hinzufüge, also Style z.B. dann wirft es mir auch den Fehler. Der Fehler passiert dann, wenn ich die DataTable der DataTable-Property, also hier:
public DataTable FileDataTable
{
get { return _fileDataTable; }
set
{
_fileDataTable = value;
this.OnPropertyChanged("FileDataTable");
}
}
hinzufüge. Jetzt hab ich gar keinen Plan mehr...
Hallo Leute,
ich versuche gerade der HeaderColumn des DataGrids ein Command zu geben, aber ich komme nicht weiter und bräuchte mal eure Hilfe.
Ich verwende folgenden XML-Code:
<DataGrid
x:Name="dgFileContent"
Grid.Row="1"
AutoGenerateColumns="True"
CanUserSortColumns="False"
CanUserReorderColumns="True"
AllowDrop="True"
HeadersVisibility="{Binding HeaderVisibility, Mode=TwoWay}"
ItemsSource="{Binding FileDataTable, Mode=TwoWay}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Drop">
<i:InvokeCommandAction Command="{Binding DropCommand}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="IsHitTestVisible" Value="False"/>
</Style>
</DataGrid.Resources>
<DataGridColumnHeader>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding HeaderClickCommand}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</DataGridColumnHeader>
</DataGrid>
Es wird hier eine Datei per Drag&Drop eingefügt, was soweit auch wunderbar funktioniert.
Allerdings wenn ich den Bereich <DataGridColumnHeader> einfüge, dann bekomme ich folgende Fehlermeldung:
"Die Items-Sammlung muss vor dem Verwenden von "ItemsSource" leer sein."
Das ViewModel hat folgende Deklarationen für das Command, was jetzt aber mit dem Fehler nichts zu tun hat:
public ICommand HeaderClickCommand
{
get
{
if (_headerClickCommand == null)
_headerClickCommand = new RelayCommand(param => this.HeaderClick(param), param => this.CanHeaderClick());
return _headerClickCommand;
}
}
public bool CanHeaderClick()
{
return true;
}
public void HeaderClick(object obj)
{
}
Was mache ich falsch bzw. was muss ich machen damit ich auf die HeaderColumns ein Click-Command bekomme?