Fenster größer: Geht nicht, im realen Programm stellt das Fenster den Bildschirm dar, und der wird nun mal nicht größer ...
eine Minheight am Fenster, was soll das bringen?
Das ist doch nur fürs Beispiel, die beiden Border mit Rahmen stellen "Inhalt" dar. Genausogut, könnte ich das machen:
<Border>
<Grid x:Name="grd">
<Grid.RowDefinitions>
<RowDefinition Height="3*" x:Name="row1" MinHeight="80"/>
<RowDefinition Height="7*" x:Name="row2"/>
</Grid.RowDefinitions>
<Border Background="LightGreen">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<Border Background="Green" BorderBrush="Red" BorderThickness="6">
<StackPanel>
<TextBlock FontSize="36">Top1</TextBlock>
<TextBlock FontSize="36">Top2</TextBlock>
<TextBlock FontSize="36">Top3</TextBlock>
<TextBlock FontSize="36">Top4</TextBlock>
</StackPanel>
</Border>
</ScrollViewer>
</Border>
<Border Grid.Row="1" Background="LightBlue">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<Border Background="Blue" BorderBrush="Black" BorderThickness="6">
<StackPanel>
<TextBlock FontSize="36">Bottom1</TextBlock>
<TextBlock FontSize="36">Bottom2</TextBlock>
<TextBlock FontSize="36">Bottom3</TextBlock>
<TextBlock FontSize="36">Bottom4</TextBlock>
<TextBlock FontSize="36">Bottom5</TextBlock>
<TextBlock FontSize="36">Bottom6</TextBlock>
<TextBlock FontSize="36">Bottom7</TextBlock>
<TextBlock FontSize="36">Bottom8</TextBlock>
<TextBlock FontSize="36">Bottom9</TextBlock>
<TextBlock FontSize="36">Bottom10</TextBlock>
</StackPanel>
</Border>
</ScrollViewer>
</Border>
</Grid>
</Border>
ok, verstanden, aber wie lös ich das jetzt?
mögliche Lösung:
private GridLength? original;
public TestWindow()
{
InitializeComponent();
((FrameworkElement)grd.Parent).SizeChanged += new SizeChangedEventHandler(TestWindow_SizeChanged);
}
private void TestWindow_SizeChanged(object sender, SizeChangedEventArgs e)
{
if (original == null)
{
original = row2.Height;
}
if (row1.ActualHeight > row1.MinHeight)
{
row2.Height = original.Value;
}
else
{
row2.Height = new GridLength(((FrameworkElement)sender).ActualHeight - row1.ActualHeight);
}
}
Funktioniert, springt aber irgendwie ... irgendwelche besseren, evtl. direkt im XAML lösbaren Vorschläge? Hab diese Konstellation sicher 20 mal und will das nicht in jeder Maske so einfügen ...
ja, klar ist das Fenster zu klein, deswegen auch ScrollViewer. Zum Vergleich unten mal das Fenster, wenn man die MinHeight wegnimmt. Da weiß der 2. Scrollbalken auch, dass beim Fensterende Schluss ist ...
<Window x:Class="EnterWindowClassNameHere"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="TestWindow" Height="200" Width="300">
<Grid>
<Border>
<Grid x:Name="grd">
<Grid.RowDefinitions>
<RowDefinition Height="3*" MinHeight="80"/>
<RowDefinition Height="7*"/>
</Grid.RowDefinitions>
<Border Background="LightGreen">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<Border Background="Green" BorderBrush="Red" BorderThickness="6" Height="100">
<TextBlock VerticalAlignment="Center" FontSize="36">Top</TextBlock>
</Border>
</ScrollViewer>
</Border>
<Border Grid.Row="1" Background="LightBlue">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<Border Background="Blue" BorderBrush="Black" BorderThickness="6" Height="200">
<TextBlock VerticalAlignment="Center" FontSize="36">Bottom</TextBlock>
</Border>
</ScrollViewer>
</Border>
</Grid>
</Border>
</Grid>
</Window>
Der unterere Scrollviewer wird nicht mehr ganz angezeigt. Ist das ein Bug oder kann ich das irgendwie anderes gestalten, sodass ich in beiden Bereichen bis zum Ende scrollen kann und oben trotzdem die Mindesthöhe habe?
Wenn man nämlich die MinHeight rausnimmt gehts ...
Hab mal statt localhost die 127.0.0.1 oder die lokale IPv4 Adresse verwendet - da geht's bei mir. Es scheint, als würde rawcap nicht über IPv6 funktionieren.
Das hat bei mir nun etwas gebracht, jetzt seh ich wirklich nur mehr "meinen" traffic.
Wenn ich nun:
<security mode="None"/>
mit:
<security mode="Message">
<transport clientCredentialType="Windows"/>
<message clientCredentialType="Windows"/>
</security>
und
<security mode="Message">
<transport clientCredentialType="Windows" protectionLevel="EncryptAndSign"/>
<message clientCredentialType="Windows"/>
</security>
vergleiche,
stelle ich fest, dass ich im "none" output meine "Daten" (hab da jetzt noch einen String mit allen Buchstaben groß/klein und allen Zahlen eingebaut) lesen kann. D.h. ich sehe "ABC...abc..7890" im output dieses trace. Ok.
Zwischen den beiden anderen traces kann ich jedoch nicht viel Unterschied feststellen. Soweit ich verstanden habe müsste ich doch dem "EncryptAndSign" irgendwo auch ein Zertifikat angeben? Ignoriert die WCF das dann einfach wenn sie nichts findet?
Wie gut "verschlüsselt" ist der Transport wenn ich nur Variante 2 nehme?
Danke allen für die Unterstützung!
Anbei mal mein Testprojekt auf das nötigste reduziert.
am XP Rechner mit einem User mit Admin-Rechten hab ich keine Chance, kommt immer der Fehler.
aufm Win7 Rechner mit Admin-User kann ich auf einer Ethernet Schnittstelle und dem Loopback Pseudo Interface sniffen. Allerdings kommt bei der Ethernet-Schnittstelle nur Sachen durch, die mich nicht interessieren und beim Loopback gar nichts.
Meinen Traffic seh ich also immer noch nicht ...
> RawCap
Fehlermeldung:
Unable to enter promiscuous mode (RCVALL_ON), using RCVALL_SOCKETLEVELONLY.
Mal so in den Raum geworfen ...
StringBuilder sb = new StringBuilder();
foreach(string antwort in antworten)
{
sb.Append(antwort);
}
string result = sb.ToString().Replace(Environment.NewLine,String.Empty);
Sorry, ich schaffs einfach nicht. Ich bekomm weder im NetworkMonitor noch im Wireshark irgendwelche Packete angezeigt, wenn ich Daten von meinem WCF-ServiceHost hole.
Und im normale Message-Loging seh ich absolut keine Nachrichten und ich hab extra eine "LargeData" Property in meinen DataContract eingefügt, in dem ich relativ lange Strings erzeuge.
Mach ich da irgendwelche Einstellungsfehler in den Programmen?
Ich hab jetzt ein paar Netzwerk Monitore, Packetsniffer etc. probiert, aber ich bekomm es einfach nicht hin, die Packete, die zwischen meinem Client und meinem Host transferiert werden irgendwie zu überwachen.
Ich verwende als Endpunkt net.tcp://localhost:53000/MeinService oder net.tcp://MeineMaschine:53000/MeinService
hab ich irgendwelche Möglichkeiten die Messages zu sehen UND die darin enthaltenen Daten? (die seh ich nämlich im Trace nicht, selbst wenn ich logEntireMessage etc. einstelle)
Wenn du beim Hinzufügen einer bestehenden Datei im Dialog den "Add"-Button anschaust, siehst du da einen Pfeil daneben. Es gibt im VS die Möglichkeit Datein als Link ("Add As Link" ) hinzuzufügen ...
Ok und was mach ich wenn ich nur eine "Standard Edition" hab?
Da erschließt sich wieder mein alt bekanntes Problem: Der Entwickler (Lösungsgeber) kann das Problem erst erkennen, wenn der Fehlermelder auch alle Angaben gibt.
Meist ist es dann so, dass der Fehlermelder, wenn er dann die Angaben alle korrekt gesammelt hat, schon selber draufkommt was nicht stimmt und das Problem selbst behebt.
@blackdynamic
Hättest du von Anfang an erwähnt, dass du die Liste in einem Unit-Test überprüfst hätten wir uns wohl einige Beiträge (und Verwirrung) erspart ... 😉
Von was für einer "Liste" reden wir da? Irgendeine ListView/ItemsControl o.ä. im WPF-Bereich oder WinForms, Web oder sonst was?
naja, hast du denn den Event auch irgendwo registriert? Also fängst du irgendwo das "PropertyChanged" auf?
also rein theoretisch gehts natürlich ...
Kann das nicht ganz reproduzieren:
<Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Grid x:Name="LayoutRoot" >
<Grid.Resources>
<Style TargetType="{x:Type Border}">
<Setter Property="BorderThickness" Value="5"/>
<Setter Property="BorderBrush" Value="Black"/>
</Style>
</Grid.Resources>
<Grid.RowDefinitions>
<RowDefinition Height="30*"/>
<RowDefinition Height="70*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70*" />
<ColumnDefinition Width="30*"/>
</Grid.ColumnDefinitions>
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
<Border Background="Red" x:Name="brdRed"></Border>
</ScrollViewer>
<Border Background="Blue" Grid.Column="1"></Border>
<Border Background="Green" Grid.Row="1"></Border>
<Border Background="Yellow" Grid.Row="1" Grid.Column="1"></Border>
</Grid>
<Slider Maximum="1000" Value="{Binding ElementName=brdRed, Path=Width}" Grid.Row="1"></Slider>
<Slider Maximum="1000" Value="{Binding ElementName=brdRed, Path=Height}" Grid.Row="2"></Slider>
</Grid>
</Grid>
Mit Hilfe der Slider kann man jetzt den roten Border vergrößern. Mit dem Scrollviewer kann man dann innterhalb der Zelle scrollen. Nimmt man den Scrollviewer raus, dann verschwindet lediglich der rote Border hinter den anderen Zellen. Die rechte untere Ecke wandert aus der Sichtbarkeit. An den anderen Zellen selbst verändert sich nichts ...
bool error = true;
foreach (var item in currentBeratung.Beratungsinhalte)
{
if (item.IsSelected)
{
error = false;
}
}
if (error)
{
errors = AddToErrors("Es muss zumindest ein Beratungsinhalt angegeben werden", errors);
}
else
{
error = true;
}
foreach (var item in currentBeratung.Beratungsergebnisse)
{
if (item.IsSelected)
{
error = false;
}
}
if (error)
{
errors = AddToErrors("Es muss zumindest ein Beratungsergebnis angegeben werden", errors);
}
Ich hab die vom Toolkit in Verwendung, muss aber dazu sagen, dass ich da selbst noch einiges an Code dazugeschrieben habe um sie wirklich verwenden zu können.
PS: Könnte dir meinen Code schicken, solltest du keine Alternative finden
verwendetes Datenbanksystem: <SQL Server 2008 evtl. auch R2>
Ich bin im Moment nicht am Grübeln, wie ich die Daten verschlüssle, sondern eher wann und wo. Ich hab folgende Architektur: Client - WCF Service - BusinessLayer - DataLayer und Datenbankzugriff über EntityFramework.
Folgende Problem haben sich nun in meinen Überlegungen ergeben:
Wenn ich nun die Verschlüsselung Datenbank seitig mache, müsste ich meine Datenschicht, so umbauen, dass das EntityFramework (da es ja selbst keine Verschlüsselung kann) auf Views zugreift, die mir die Daten entschlüsselt gibt. Wobei ich mich dann frage, wie ich die View schütze, die dann die entschlüsselten Daten liefert ...
Die Zielsetzung ist klar damit definiert, die Daten in der Datenbank verschlüsselt zu haben. Nun muss ich aber auf diese Daten auch Auswertungen machen. Ich darf z.B. die Kontostände von Kunden nur verschlüsselt speichern. Wie mache ich nun eine Auswertung auf die Kontostände, um z.B. Durchschnittswerte oder so auszurechnen? Mein Reporting-System ist der SQL-Reporting-Server.
Irgendwie bin ich da sehr unschlüssig, wie und wo ich überhaupt anfangen soll. Kann mir da jemand mit ein paar Links oder Kommentaren weiterhelfen?
Da würde ich vorschlagen du schaust dir mal das Thema "ItemTemplate" an. Wenn du z.B. eine ListView nimmst und an ItemsSource der ListView deine 10 Personen bindest, kannst du der ListView ein ItemTemplate definieren, dass für jedes Item erstellt wird. In diesem kannst du dann deine Personendaten anzeigen wie du sie brauchst.
SELECT Kunde.*
FROM (
SELECT 1 as ID, 'Mustermann' as Kunde
UNION
SELECT 2 as ID, 'Meier' as Kunde
) Kunde
LEFT JOIN (
SELECT *
FROM (
SELECT 99 as ID, 'Nudeln' as Produkt, 8 as Sparte_ID, 1 as Kunde_ID
UNION
SELECT 100 as ID, 'Erbsen' as Produkt, 10 as Sparte_ID, 1 as Kunde_ID
UNION
SELECT 101 as ID, 'Linsen' as Produkt, 15 as Sparte_ID, 2 as Kunde_ID
) Data
) Produkt ON Kunde.ID = Produkt.Kunde_ID AND Produkt.Sparte_ID = 10
WHERE Produkt.Sparte_ID is null
Da ist kein Distinct oder so notwendig ... Flo's Lösung ist also zu 99% richtig
Ich hab dafür am SQL Server eine Funktion die das Überlappen von Zeitbereichen prüfen kann, aber bei dir würde auch folgende Variante genügen:
GesuchtJahr100+GesuchtMonat BETWEEN VonJahr100+VonMonat AND BisJahr*100 + BisMonat
Um nicht im Alter von 50 als alleinstehender Einstein oder Elvis dazustehen um mich dann in der Pension zu fragen, was es alles gebracht hat, habe ich in den letzten Jahren gelernt, auch mal Mort zu sein.
Ich würde aber diesen Job auch nicht machen, wenn ich nicht auch ein Elvis wäre. Ich kann mir auch nicht vorstellen, dass das jemand ohne diese Veranlagung mehr als 5 Jahre durchhält ...
ist das autoübersetzt? Ich versteh nix ...
Ich kann nur mal empfehlen dir das "Touchstudio" anzuschauen, evtl. kannst du ein paar Sachen auch damit abwickeln (www.touchdevelop.com)
PS:
Mit Mango soll glaube ich auch eine kostenfreie Variante kommen um seine eigenen Apps aufs Handy zu bekommen, da kann man dann irgendwie den Marketplace umgehen.
Du kannst ein neues Interface erstellen, das vom eigentliche Interfacen abgeleitet ist, und dieses um deine Property erweitert ...
Ich habs noch etwas anders:
Ich hab die beiden Version zeilen aus (je)der AssemblyInfo.cs herausgenommen und in eine eigene AssemblyInfo.Version.cs verschoben. In den einzelnen Projekten habe ich diese Datei per "Add as Link" hinzugefügt.
Ich weiß gar nicht, wie's im Moment mit Copyright überhaupt aussieht. Was kann man sich den schützen oder patentieren lassen?
Meines Erachtens ja nie Code sondern nur "Konzepte" oder Vorgangsweisen oder?
Das würde ich im richten GUI-Forum nachfragen ...
Außerdem ist LoadXml() falsch. Das lädt nämlich nur einen XML-String. Um XML aus einer Datei zu laden ist die Load()-Methode zu verwenden.
Kannst also das mit dem <?xml> vergessen ...
Na in dein File hinein, als oberste Zeile. XML-Dateien werden normalerweise oben mit dem XML-Tag gekennzeichnet, also z.B: <?xml version="1.0" encoding="UTF-8"?>
und na klar kommt es beim LoadXml(), wo auch sonst?
Bin mir nicht sicher ob GhostDoc das schafft, schließlich ist das da keine Vererbung sondern eine Methode die eine andere Methode aufruft. Out of the box geht das über Ghost-Doc denke ich auch nicht.
Was heißt "Bei Threads kann man Screenshots machen"? Wie bewerkstelligst du das denn? Manuell? Dann kannst du auch manuell einen Screenshot der Dateien machen.
Solltest du das tatsächlich programmatisch machen, würd ich dir für die Dateien den FileWatcher empfehlen.
und welche hast du als "unnötig" eingestuft?
Nur in XAML wird denke ich relativ schwer ... ich würd halt über eine DependecyProperty am UC2 gehen und die im DataTemplate binden ...
Wenn ich das richtig sehe ist dein DataContext für das UC2 ein ListItem aus der Property "public List<OwnClass> DataList".
Du gehst also von einem falschem DataContext für dein UC2 aus ...
Wer von euch verwendet die Code Analysis in VS 2010 und mit welchem RuleSet?
Mit dem "All"-RuleSet komm ich gar nicht zu Recht. Manche Warnings sind meines Erachtens auch schlichtweg falsch ...
decimal value = 1.23;
string culture = "de-AT";
string displayFormat = "Betrag = {0:C}";
string result = String.Format(System.Globalization.CultureInfo.GetCultureInfo(culture), displayFormat, value);
culture="de-AT"; displayFormat="Betrag = {0:C}"
ergibt: "Betrag = € 1,23"
culture="en-US"; displayFormat="Betrag = {0:C}"
ergibt: "Betrag = $ 1.23"
culture="de-AT"; displayFormat="2 Stellen {0:0.00}"
ergibt: "2 Stellen 1,23"
culture="en-US"; displayFormat="2 Stellen {0:0.00}"
ergibt: "2 Stellen 1.23"
Gibts eigentlich schon irgendwo einen Guide der vorgibt wie Programme für Win8 dann auszusehen haben? Wo sind Menüs, gibts rechte Maustasten, wo ist was anzuordnen etc?
Der Umstieg is ja doch relativ brutal und dann ein hübsches Win8 zu haben, wenn 95% der Programme dann komplett gegen dieses Design gehen ist auch irgendwie komisch. Ich frag mich halt, wie ich meine/unsere Anwendungen umdesignen müsste um sie Win8 näher zu bringen ...
SELECT *
INTO #tmpData
FROM (
SELECT 1 as Start, 3 as Ende, 'A' as ID UNION
SELECT 2 as Start, 5 as Ende, 'B' as ID UNION
SELECT 4 as Start, 6 as Ende, 'C' as ID UNION
SELECT 7 as Start, 8 as Ende, 'D' as ID UNION
SELECT 9 as Start, 10 as Ende, 'E' as ID
) Data
SELECT d.ID as Item, d.Start, d.Ende, dnext.ID as NextIs,
dnext.Start as NStart, dnext.Ende as NEnde
FROM #tmpData d
JOIN #tmpData dnext on d.Ende < dNext.Start
JOIN (
SELECT d.Start, d.Ende, MIN (dNext.Start) as DirectNext
FROM #tmpData d
JOIN #tmpData dnext on d.Ende < dNext.Start
GROUP BY d.Start, d.Ende
) dcn on d.Start = dcn.Start AND d.Ende = dcn.Ende AND dnext.Start = dcn.DirectNext
DROP TABLE #tmpData
Item Start Ende NextIs NStart NEnde
A 1 3 C 4 6
B 2 5 D 7 8
C 4 6 D 7 8
D 7 8 E 9 10
@Shion, wobei der Horror nur die Verwendung des ?: Operators im return ist, die Funktionen selbst sind in meinen Augen durchaus legitim, weil eine IsNull(int? value) Methode nämlich von "int" und "int?" aufrufbar ist, daher könnte man die IsNull() Funktion in dieser Hinsicht universell verwenden.
Brauchbar ist das z.B. wenn man irgendwo per Reflection Daten holt ...
Der Teil Bedingung ? true : false ist trotzdem Käse ... 😉
Schema.ini File (Text File Driver)
Schau mal bei "Specifying Data Type Formats and Conversions" den Punkt "DecimalSymbol"
Ich nehm an DecimalSymbol=. ins .ini-File hinzufügen wird genügen.
Hier mal ein Lösungsansatz. Eventuell kannst du das auf deine Anforderungen adaptieren, weiß nicht genau, wie die Tabellen aussehen und ob das tauschen so passt.
Weiß auch nicht genau was du mit "Firebird" im Titel meinst und ob du einen MS-SQL-Server verwendest, ich meine nämlich, dass das Tauschen in der Form nur am SQL-Server funktionieren wird.
SELECT *
INTO #tmp
FROM (
SELECT 1 as Inc, 'A' as Bla
UNION
SELECT 2 as Inc, 'B' as Bla
UNION
SELECT 3 as Inc, 'C' as Bla
) Data
SELECT * FROM #tmp
DECLARE @von int
DECLARE @nach int
SET @von = 1
SET @nach = 3
UPDATE t1 SET Bla = t2.Bla
FROM #tmp t1
JOIN #tmp t2 ON t1.Inc != t2.Inc
WHERE t1.Inc in (@von,@nach) AND t2.Inc in (@von,@nach)
SELECT * FROM #tmp
DROP TABLE #tmp
PS:
Das Tauschen funkioniert logisch auch nur, wenn INC eindeutig ist. Wenn INC=Von oder INC=Nach auf mehrere Elemente zutrifft, wird das mit dem Tauschen nicht wirklich gehen.
Evtl. könntest du dir auch beim Laden der App den Style suchen und dann den TargetType im Code setzen.
versuch mal {x:Type self:Type1+Type2}