Laden...

Forenbeiträge von ThomasE. Ingesamt 461 Beiträge

24.05.2017 - 17:39 Uhr

Hallo,

ich bin mal wieder am Verzweifeln.

Bisherige Umsetzungen:
Es gibt ein Silverlight-PlugIn, welches in einem Fremdprodukt geladen wird, wo ich keinen Einfluß habe.
WICHTIG: Es wird bei der Verwendung des PlugIns direkt die "MainPage"-Klasse initiiert, die "App" bleibt unberührt.

Nun habe ich damit begonnen, mich mit mehreren Sprachen zu beschäftigen und erste Tests durchzuführen. Habe dabei den Standard in Verwendung, daß heißt, ich arbeite mit resource.resx Dateien, für jede Sprache halt. Derzeit nur folgende:
StringLibary.resx -- Standard
StringLibary.en.resx -- Englisch

Die 'en' DLL wird auch erstellt, allerdings kommt es mir so vor, als ob sie nie geladen wird, da der implementierte Standard ('de') immer verwendet wird.

Ist meine Annahme richtig, daß in dieser Konstellation die Satelliten Assemblies nicht geladen werden (können)?
Das würde heißen, daß ich mich selbst darum kümmern muß...

Wenn dem so ist, kann mir wer einen Link oder eine kurze Hilfe bzw. Denkanstoß dafür liefern?

Ihr würdet mir da wirklich sehr weiterhelfen! Vielen Dank im Voraus,
Thomas

17.02.2017 - 10:05 Uhr

Danke für die schnelle Erklärung.

Die Sache ist damit abgeschlossen. 👍

17.02.2017 - 09:52 Uhr

verwendetes Datenbanksystem: MS SQL ab 2012

Hallo,

ich hoffe ich hab das Thema venünpftig benannt.

Wollte fragen, ob es für eine neue Spalte in eirner Tabelle möglich ist, 2 Größenangaben zu machen, nämlich eine kleinere und eine mit Maximum?:


ALTER TABLE dbo.Tabelle ADD NeueSpalte (NVARCHAR(15)->normal) NVARCHAR(30)->Maximum

Soweit ich weiß, wird bei NVARCHAR nur der Platz belegt, der benötigt wird, ohne das der Rest der definierten Größe der Spalte mit Leerzeichen aufgefüllt wird.

Wie ist es aber dann in echt, wird im Hintergrund trotzdem der Platz reserviert, da ja sich der Wert ändern kann?
--> Aus dem heraus stellt sich dann meine Frage, ist es möglich mit 2 Größenangaben eine Spalte zu definieren oder eher humbug?

Warum?
Da es sein kann, daß z.Bsp 80% der Daten sich unter der Länge von 15 befindet, der wenige Rest dann aber mehr haben kann.

Vielen Dank im Voraus!

15.02.2017 - 15:23 Uhr

So, im Anhang ist mein aktueller Stand zu finden.

Jetzt bin ich mir nur nicht sicher, wie ich alle Namen in einer Liste miteinander vergleiche und dann nur die nicht doppelten ausgebe.

Jetzt fehlt mir allerdings die Idee.

Ich denke das ist dein Problem... hast du schon mal die Meldungen alle durchgelesen? Der nächste Schritt wäre doch eh nur mehr den fertigen Code zu posten.. (was hier sicher keiner tun würde...)

Lesen und versuchen zu verstehen, wenn man hier eine Meldung nicht versteht, dann fragt man halt mal nach... 😉

Ich sehe irgendwie nicht ganz, daß du irgendeine Lösung hier verfolgst... (bitte nicht böse sein)

15.02.2017 - 08:41 Uhr

So rein ins Blaue geraten, kann es z.Bsp. das typische "\n\r" sein?

15.02.2017 - 08:32 Uhr

Hey, ich versuche es nochmal:

Also wie schon mal erwähnt, eine eigene Methode erstellen, die Prüft, ob ein Eintrag in einem Array schon vorhanden ist:



Methode_Ist_Eintrag_enthalten  ( Array, zu suchender Eintrag )
->
   1. (Normaler Weise prüft man fast immer reinkommende Parameter auf Gültigkeit, z.Bsp. ist Array null, hat der zu suchende Eintrag einen Wert usw..)
   2. Durchschleife das Array und vergleiche jeden Eintrag, ob der zu suchende Eintrag enthalten ist
   3. Wenn gefunden, kann die Schleife sofort durch ein 'return true;' beendet werden
   4. Wenn nicht gefunden, am Ende immer 'false' zurückgeben


So, wozu jetzt das Ganze? Die Methode gibt dir immer die Information, ob eben ein Eintrag in einem Array schon vorhanden ist.

Als nächstes muß man halt nur noch die Methode verwenden:



1. Durchschleife Array1
2. Rufe Methode auf -> Parameter (Reihenfolge wie oben beschrieben) Array2, Item von Array1
3. Kommt 'true' zurück, ist der Eintrag doppelt und Schleife kann mittels 'continue' sofort den nächsten Eintrag schleifen
4. Kommt 'false' zurück, ist der Eintrag NICHT doppelt und kann in die ListBox aufgenommen werden


Daher du ja alle einmaligen Einträge beider Arrays drinnen haben willst, machst einfach dasselbe Spiel wie im 2. Block nochmals, nur das die Array1 und Array2 ausgetauscht sind.

( Wenn du ganz geschickt bist, kannst du diese Verarbeitung ebenfalls in eine eigene Methode stecken, sodaß du den 2. Block nur einmal stehen hast und diesen einfach nur 2x aufrufst. Ist aber fürs Erste für dich nicht unbedingt notwendig..)

13.02.2017 - 08:38 Uhr

Hallo!

Er kann sich ja in der doppelten Schleife einfach den Status merken (bool), ob ein doppelter Eintrag gefunden wurde. (Wenn ja, dann könnte man sofort (break) verwenden. (Unterbricht die Schleife vorzeitig))

Noch innerhalb der ersten Schleife, kann man dann den (bool) als Kennzeichen hernehmen, ob der Eintrag doppelt ist oder nicht.

Das ist ganz ohne Linq, ist die Frage ob er das verwenden kann...

03.02.2017 - 00:03 Uhr

Oh man, ja klar ! =)

Ist eh so einfach!

DANKE SCHÖN!

02.02.2017 - 23:24 Uhr

Hey,

also wenn das so richtig sein sollte:


               <TreeView.ItemTemplate>
                    <HierarchicalDataTemplate ItemsSource="{Binding Path=SubItems, Mode=OneWay}">
                        <Grid>
                            <Grid.Style>
                                <Style TargetType="{x:Type Grid}">
                                    <Style.Triggers>
                                        <Trigger Property="IsMouseOver" Value="true">
                                            <Setter TargetName="buttons" Property="Visibility" Value="Visible"/>
                                        </Trigger>
                                        <Trigger Property="IsMouseOver" Value="false">
                                            <Setter TargetName="buttons" Property="Visibility" Value="Collapsed"/>
                                        </Trigger>
                                    </Style.Triggers>
                                </Style>
                            </Grid.Style>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto"/>
                            </Grid.RowDefinitions>

                            <Grid x:Name="buttons" Grid.Column="0" Grid.Row="0" Margin="0,-19,0,19">

Hat er das Problem den Namen "buttons" nicht zu finden... hatte dieses schon getestet und jetzt wieder..

Anscheindend fehlt da eine Kleinigkeit...

[Edit1]
Hatte diese Meldung übersehen:

Fehlermeldung:
Fehler TargetName-Eigenschaft kann nicht für einen "Style Setter" festgelegt werden. Zeile 116 Position 53.

[/Edit1]

02.02.2017 - 22:21 Uhr

Hallo, danke für die Schnelle Antwort!

Ähem, ich denk ich verstehe, ich triggere den Zustand im TreeViewItem und setze dabei die Buttons oder dessen Parent.Visibility...

Nur wo setz ich den Block ein, damit der Name 'buttons' auch erkannt wird?:


            <TreeView Grid.Column="0" Grid.Row="0" Margin="0,0,9,0"
                      ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto"
                      ItemsSource="{Binding Path=XmlFileContent, Mode=OneWay}">
                <TreeView.Resources>
                    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" />
                    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black" />
                    <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Transparent" />
                    <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="Black" />
                </TreeView.Resources>
                <TreeView.ItemContainerStyle>
                    <Style TargetType="{x:Type TreeViewItem}">
                        <Setter Property="IsExpanded" Value="{Binding Path=IsExpanded, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                        <Setter Property="IsSelected" Value="{Binding Path=IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                        <Setter Property="HorizontalAlignment" Value="Left"/>
                        <Setter Property="FontWeight" Value="Normal" />
                        <Style.Triggers>
                            <Trigger Property="IsSelected" Value="True">
                                <Setter Property="FontWeight" Value="Bold" />
                                <Setter Property="Background" Value="Transparent"/>
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </TreeView.ItemContainerStyle>
                <TreeView.ItemTemplate>
                    <HierarchicalDataTemplate ItemsSource="{Binding Path=SubItems, Mode=OneWay}">
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto"/>
                            </Grid.RowDefinitions>

                            <Grid x:Name="buttons" Grid.Column="0" Grid.Row="0" Margin="0,-19,0,19">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="Auto"/>
                                    <ColumnDefinition Width="Auto"/>
                                    <ColumnDefinition Width="Auto"/>
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="Auto"/>
                                </Grid.RowDefinitions>

                                <Button Grid.Column="0" Grid.Row="0" Margin="0,1" Width="18" Height="18"
                                        Background="Transparent" BorderThickness="0" ToolTip="Duplizieren..."
                                        Command="{Binding Path=CreateDuplicate}"
                                        Visibility="{Binding Path=CanCreateDuplicate, Mode=OneWay, Converter={StaticResource ResourceKey=BooleanToVisibilityConv}}">
                                    <Button.Content>
                                        <Image Source="Images/ElementDublicate.png"/>
                                    </Button.Content>
                                </Button>

                                <Button Grid.Column="1" Grid.Row="0" Margin="0,1" Width="18" Height="18"
                                        Background="Transparent" BorderThickness="0" ToolTip="Kopie erstellen..."
                                        Command="{Binding Path=CreateCopy}"
                                        Visibility="{Binding Path=CanCreateCopy, Mode=OneWay, Converter={StaticResource ResourceKey=BooleanToVisibilityConv}}">
                                    <Button.Content>
                                        <Image Source="Images/ElementCopy.png"/>
                                    </Button.Content>
                                </Button>

                                <Button Grid.Column="2" Grid.Row="0" Margin="0,1" Width="18" Height="18"
                                        Background="Transparent" BorderThickness="0" ToolTip="Löschen..."
                                        Command="{Binding Path=DeleteElement}"
                                        Visibility="{Binding Path=CanDeleteElement, Mode=OneWay, Converter={StaticResource ResourceKey=BooleanToVisibilityConv}}">
                                    <Button.Content>
                                        <Image Source="Images/Delete.png"/>
                                    </Button.Content>
                                </Button>

                            </Grid>
                            
                            <ContentPresenter Grid.Column="0" Grid.Row="0" Margin="1"
                                              Content="{Binding Path=CurrentXml, Mode=OneWay, Converter={StaticResource ResourceKey=XmlTextConv}}"/>

                        </Grid>
                    </HierarchicalDataTemplate>
                </TreeView.ItemTemplate>
            </TreeView>


Der Trigger würde ja so aussehen:


                                <Style.Triggers>
                                    <Trigger Property="IsMouseOver" Value="true">
                                        <Setter TargetName="buttons" Property="Visibility" Value="Visible"/>
                                    </Trigger>
                                    <Trigger Property="IsMouseOver" Value="false">
                                        <Setter TargetName="buttons" Property="Visibility" Value="Collapsed"/>
                                    </Trigger>
                                </Style.Triggers>

Danke schon mal im Vorhinein.. Grüße

02.02.2017 - 18:05 Uhr

Hallo,

ich bräuchte eine Info, Link oder Anstoß, um in einem TreeViewItem mittels MVVM an die Info 'IsMouseOver' zu kommen.

Warum:
Ich möchte es umsetzen, daß TreeViewItems nur dann Buttons angezeigt bekommen (welche ebenfalls im TreeViewItem-ViewModel als Command definiert sind), wenn der Benutzer mit dem Mauszeiger drüberfährt.

Ich wäre natürlich für Alternativen offen, muß nicht unbedingt so gelöst werden...

Hatte mal schon wer sowas ähnliches umgesetzt? Wie kann man sowas angehen?

(nicht falsch verstehen, ich möchte keine fertigen Lösungen, sondern nur einen/mehrere Wegweiser 😉 )

31.01.2017 - 12:33 Uhr

Hey, besten Dank!

Das hat natürlich so seine Feinheiten und spart auch wieder platz, finde das toll!

[Edit1]


public int CalculatedBmi => Mass / (Height * Height);
//ist dasselbe wie:
public int CalculatedBmi
{
   get
   {
        return Mass / (Height * Height);
    }
}

Mit dieser Schreibweise ist aber nur ein getter möglich?

[/Edit1]

Grüße

31.01.2017 - 08:37 Uhr

Hallo LaTino,

was ist denn das für eine Schreibweise?:


private int GetInt() => 6;

Kenn ich gar nit!

Heißt das, daß diese Methode immer 6 zurückliefert?
Was hätte das für einen Sinn?

30.01.2017 - 17:22 Uhr

Hallo,

in meinem Fall hatte ich die Anwendung für 32Bit unter x86 erstellen müssen damit es funktioniert.

Für x64 hat es mit AnyCPU funktioniert.

Grüße

26.01.2017 - 14:46 Uhr

Hallo, vielleicht mal ein kleiner Codeausschnitt des Problems, nämlich genau die Stelle, an der das Event registriert wird UND die EventMethode selbst...

Zudem wäre die Fehlermeldung auch recht Hilfreich, schon alleine für dich selbst, denn meistens trifft sie ja den Nagel auf dem Kopf! 😉

Unter welcher Umgebung entwickelst du?

Grüße

25.01.2017 - 16:42 Uhr

Hmm, hat er nicht schon sowas mit 'Model.' ?

Allerdings nur falsch/umständlich in Verwendung... Könnte mir vorstellen, daß die Länder fix im XAML eingetragen sind...

24.01.2017 - 13:37 Uhr

Hallo,

nach sehr sehr langer Zeit, hatte ich mich mal wieder damit beschäftigt und bin auf die Lösung gekommen:

.) Hatte/habe bisher die direkte URL-Eingabemöglichkeit im InternetExplorer nicht gefunden. Anscheinend lag/liegt genau da das Problem.
.) Installierte einen Browser 'Incognito' der das kann und siehe da, alles passt und funktioniert. (außer Datei(pdf)-Downloads, ist aber ein anderes Thema)

Der IE hat meine Anfrage immer über die Suchmaschine gehetzt und kommt/kam dadurch nie ins lokale Netzwerk..

Vielleicht kennt das wer, hatte die/eine Möglichkeit beim IE bis jetzt nicht gefunden.

Bei Android und Apple funktionierts... 🤔

05.12.2016 - 15:31 Uhr

Hallo,

ich habe, seit dem ich ein Projekt vom VS2010pro auf das VS2015pro migirert habe, Probleme mit dem XAML-Designer im Silverlight-UserControl:


            <Style x:Key="TextBoxField" TargetType="TextBox">
                <Setter Property="VerticalAlignment" Value="Center"/>
                <Setter Property="HorizontalAlignment" Value="Stretch"/>
                <Setter Property="Margin" Value="0,1"/>
                <Setter Property="Height" Value="20"/>
                <Setter Property="Padding" Value="2,0"/>
                <Setter Property="ToolTipService.ToolTip" Value="{Binding Path=CurrentStatusText, Mode=OneWay}"/>
                <Setter Property="Visibility" Value="{Binding Path=IsVisible, Mode=OneWay, Converter={StaticResource ResourceKey=VisibilityConv}}"/>
                <Setter Property="IsEnabled" Value="{Binding Path=IsReadOnly, Mode=OneWay, Converter={StaticResource ResourceKey=ReadOnlyConv}}"/>
                <Setter Property="BorderBrush" Value="{Binding Path=CurrentStatus, Mode=OneWay, Converter={StaticResource ResourceKey=StatusBorderConv}}"/>
                <Setter Property="Background" Value="{Binding Path=BackgroundColorView, Mode=OneWay, Converter={StaticResource ResourceKey=BackgroundColorConv}}"/>
                <!--
                <Setter Property="Text" Value="{Binding Path=Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                -->
            </Style>

Sobald ich das Binding mit 'Text' aktiviere, kommt vom Designer folgende Fehlermeldung: siehe Bild

Wenn ich das Binding mit dem 'Text' deaktiviere, wird alles ohne Probleme angezeigt.
Bei der Code-Ausführung funktioniert alles einwandfrei, natürlich dann, wenn das 'Text'-Binding aktiviert ist.

Kennt das jemand?

Im LogViewer ist noch folgende Fehlermeldung zu sehen:> Fehlermeldung:

Anwendung: XDesProc.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
Ausnahmeinformationen: System.AccessViolationException
bei MS.Internal.XcpImports.SetValueNative(IntPtr, UInt32, MS.Internal.CValue ByRef)
bei MS.Internal.XcpImports.SetValue(MS.Internal.IManagedPeerBase, System.Windows.DependencyProperty, System.Windows.DependencyObject)
bei System.Windows.DependencyObject.SetValue(System.Windows.DependencyProperty, System.Windows.DependencyObject)
bei System.Windows.FrameworkElement.set_Style(System.Windows.Style)

Ausnahmeinformationen: System.Reflection.TargetInvocationException
bei System.RuntimeMethodHandle.InvokeMethod(System.Object, System.Object[], System.Signature, Boolean)
bei System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(System.Object, System.Object[], System.Object[])
bei System.Reflection.RuntimeMethodInfo.Invoke(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo)
bei System.Reflection.RuntimePropertyInfo.SetValue(System.Object, System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo)
bei System.Reflection.RuntimePropertyInfo.SetValue(System.Object, System.Object, System.Object[])
bei Microsoft.VisualStudio.DesignTools.Platform.Metadata.LocalClrPropertyImplementation
.SetValue(System.Object, System.Object)
bei Microsoft.VisualStudio.DesignTools.SilverlightDesigner.SilverlightDependencyPropertyImplementation.SetValue(System.Object, System.Object)
bei Microsoft.VisualStudio.DesignTools.Platform.Metadata
.DependencyPropertyReferenceStep.SetValue(System.Object, System.Object)
bei Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders
.InstanceBuilderOperations.SetValue(System.Object, Microsoft.VisualStudio.DesignTools.Markup.Metadata.IProperty, System.Object, Boolean)
bei Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders
.ClrObjectInstanceBuilder.SetValue(Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.IInstanceBuilderContext, Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.ViewNode, System.Object, Microsoft.VisualStudio.DesignTools.Markup.Metadata.IProperty, System.Object)
bei Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders
.ClrObjectInstanceBuilder.ModifyValue(Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.IInstanceBuilderContext, Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.ViewNode, System.Object, Microsoft.VisualStudio.DesignTools.Markup.Metadata.IProperty, System.Object, Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.PropertyModification)
bei Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.DependencyObjectInstanceBuilderBase1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].ModifyValue(Microsoft.VisualStudio .DesignTools.Platform.InstanceBuilders .IInstanceBuilderContext, Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.ViewNode, System.Object, Microsoft.VisualStudio.DesignTools.Markup.Metadata.IProperty, System.Object, Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.PropertyModification) bei Microsoft.VisualStudio.DesignTools.SilverlightDesigner.InstanceBuilders .DependencyObjectInstanceBuilder .ModifyValue(Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.IInstanceBuilderContext, Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.ViewNode, System.Object, Microsoft.VisualStudio.DesignTools.Markup.Metadata.IProperty, System.Object, Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.PropertyModification) bei Microsoft.VisualStudio.DesignTools.SilverlightDesigner.InstanceBuilders.FrameworkElementInstanceBuilder .ModifyValue(Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.IInstanceBuilderContext, Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.ViewNode, System.Object, Microsoft.VisualStudio.DesignTools.Markup.Metadata.IProperty, System.Object, Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.PropertyModification) bei Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.ViewNodeManager.ResolveReference(Microsoft .VisualStudio.DesignTools.Platform.InstanceBuilders.ViewNode, System.Object, Microsoft.VisualStudio.DesignTools.Platform.Utility.DocumentNodePath) bei Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.ViewNodeManager.ResolveReferences() bei Microsoft.VisualStudio.DesignTools.Platform.InstanceBuilders.ViewNodeManager.UpdateCore(Microsoft.VisualStudio .DesignTools.Platform.InstanceBuilders.IAttachViewRoot, Boolean, Boolean) bei Microsoft.VisualStudio.DesignTools.XamlDesigner.Views.XamlSceneView.UpdateReferencesInternal() bei Microsoft.VisualStudio.DesignTools.XamlDesigner.Views.XamlSceneView.UpdateInternal(Boolean, Boolean) bei Microsoft.VisualStudio.DesignTools.SilverlightDesigner.Views.SilverlightSceneView.UpdateInternal(Boolean, Boolean) bei Microsoft.VisualStudio.DesignTools.XamlDesigner.Views.XamlSceneView.UpdateFromDamage(ViewStateBits, Microsoft.VisualStudio.DesignTools.Markup.DocumentModel.DocumentNodeChangeList, Microsoft.VisualStudio.DesignTools.Designer.ViewModel.SceneUpdateStates) bei Microsoft.VisualStudio.DesignTools.Designer.ViewModel.SceneViewModel.TryUpdateView(Microsoft.VisualStudio .DesignTools.Designer.View.PipelineUpdateInfo) bei Microsoft.VisualStudio.DesignTools.Designer.ViewModel.SceneViewModel.SceneDocument_EditTransactionCompleting(System.Object, System.EventArgs) bei System.EventHandler1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Invoke(System.Object, System.__Canon)
bei Microsoft.VisualStudio.DesignTools.Designer.Documents.SceneDocument.OnCompletingEditTransaction(Boolean, Microsoft.VisualStudio.DesignTools.Designer.Documents.SceneEditTransaction)
bei Microsoft.VisualStudio.DesignTools.Designer.Documents.SceneEditTransaction.Commit(Boolean)
bei Microsoft.VisualStudio.DesignTools.Designer.Documents.DesignerUndoService.CommitPlaceholderTextUndoUnit(Boolean)
bei Microsoft.VisualStudio.DesignTools.Designer.View.SceneView.CommitTextEditsInternal(Boolean)
bei Microsoft.VisualStudio.DesignTools.Designer.View.SceneView.SynchronizeTextEdits()
bei Microsoft.VisualStudio.DesignTools.Designer.View.SceneView.StopTimerAndCommitTextEdits()
bei Microsoft.VisualStudio.DesignTools.Designer.View.SceneView.OnTextCommitTimeoutTimer()
bei Microsoft.VisualStudio.DesignTools.Designer.View.SceneView.TextCommitTimeoutTimer_Tick(System.Object, System.EventArgs)
bei System.Windows.Threading.DispatcherTimer.FireTick(System.Object)
bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
bei System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object,
Int32, System.Delegate)
bei System.Windows.Threading.DispatcherOperation.InvokeImpl()
bei System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
bei System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading
.ContextCallback, System.Object, Boolean)
bei System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback,
System.Object, Boolean)
bei System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
bei MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System
.Threading.ContextCallback, System.Object)
bei System.Windows.Threading.DispatcherOperation.Invoke()
bei System.Windows.Threading.Dispatcher.ProcessQueue()
bei System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
bei MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
bei MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
bei System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System
.Object, Int32, System.Delegate)
bei System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
bei MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
bei MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
bei System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
bei System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)
bei System.Windows.Application.RunDispatcher(System.Object)
bei System.Windows.Application.RunInternal(System.Windows.Window)
bei System.Windows.Application.Run(System.Windows.Window)
bei Microsoft.VisualStudio.DesignTools.DesignerContract.Isolation.DesignerProcess.RunApplication()
bei Microsoft.VisualStudio.DesignTools.DesignerContract.Isolation.DesignerProcess+<>c__DisplayClass5_0.<Main>b__0()
bei System.Threading.ThreadHelper.ThreadStart_Context(System.Object)
bei System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading
.ContextCallback, System.Object, Boolean)
bei System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback,
System.Object, Boolean)
bei System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback,
System.Object)
bei System.Threading.ThreadHelper.ThreadStart()

Vielen Dank im Voraus!

25.11.2016 - 15:28 Uhr

Ist halt die Frage warum. Wenn dieses Projekt keine große Bedeutung hat und einfach nur hardcore lernen will (mit unzähligen Male auf die schnauze fliegen 😉 so wie ich auch öfters einer bin), dann hat es wenigstens einen Lerneffekt.

Eine Frage zum Thema, warum verwendest du nicht einfach das originale Window und modifizierst es so, daß du das selbe Ergebnis erreichst mit dem Rahmen usw... Ist um einiges einfacher..


<Window x:Class="Test.Window"
              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
              Height="345" Width="531" 
              WindowStyle="None" WindowStartupLocation="CenterScreen" 
              ResizeMode="NoResize" AllowsTransparency="True" >
</Window>

Ein kleiner uralter Ausschnitt von dem was ich mal geschaffen habe.
Alles Innerhalb des Windows wird dann ohne üblichen Rahmen angezeigt.
(hab es einfach so kopiert ohne Änderungen...)

Grüße

25.11.2016 - 15:08 Uhr

Hey,

du hast dir die Antwort ja schon selbst gegeben, du schleifst einfach, wie dus schon tust, durch daten[] und jedes Mal wenn ?string.StartWith("00021") daherkommt, weißt du, daß du einen neuen Datensatz schreiben sollst.

Wie du die Daten im Code handhabst bis zum UPDATE ist eine andere Sache, da müßtest schon mehr Infos rüberbringen 😉

30.08.2016 - 09:17 Uhr

Hey danke.

Das war eigentlich genau meine Frage. Hatte das in der Doku gefunden, nur irgendwie in meinem Kopf nicht angenommen. Oft ist man sich selbst im Weg...

10.08.2016 - 15:16 Uhr

Hallo,

ich hätte die Frage, wie sich genau diese 'LogicalDirection' auswirkt?

Ich weiß sie gibt die Richtung an, nur um welchen Bereich wird navigiert? Ein Zeichen, ein Run? Welche Regel gilt hier?

Blicke da noch nicht ganz durch, obwohl es so schöne Beispiele gibt:


// This method will search for a specified word (string) starting at a specified position.
TextPointer FindWordFromPosition(TextPointer position, string word)
{
    while (position != null)
    {
         if (position.GetPointerContext(LogicalDirection.Forward) == TextPointerContext.Text)
         {
             string textRun = position.GetTextInRun(LogicalDirection.Forward);

             // Find the starting index of any substring that matches "word".
             int indexInRun = textRun.IndexOf(word);
             if (indexInRun >= 0)
             {
                 position = position.GetPositionAtOffset(indexInRun);
                 break;
             }
         }
         else
            position = position.GetNextContextPosition(LogicalDirection.Forward);
     }

     // position will be null if "word" is not found.
     return position; 
}

Bitte um Info oder Verweis, vielen Dank!

Grüße

19.07.2016 - 08:23 Uhr

Hey,

sag wieso bist du im App.xaml??

Weil er das Template als Resource im Applikationskontext erstellt hat. Ist relativ normal 🙂.

LaTino

Stimmt, sollte beim nächsten Mal besser schauen, schlechter Tag... 😉

19.07.2016 - 08:20 Uhr

Hey,

was passiert beim Debug? Wenn du mal eine Liste mit 10 Einträgen hast, müßte die Lösung beim Debug ja auf der Hand liegen...

18.07.2016 - 16:53 Uhr

Hey,

sag wieso bist du im App.xaml??

Standard ist ja normal ein MainWindow.xaml von der Klasse Window...

Hatte es so noch nie getestet...

Wie schon gesagt wurde, würdest dir mit Bindings wesentlich leichter tun, und müßtest nicht mit den Steuerelementen im Code herumfuhrwerken...
--> Dann müßtest im Code nur noch die Daten manipulieren wie du sie benötigst und diese Änderungen werden automatisch durch Bindungen übernommen.
So sollte die meiste Grafik im XAML enthalten sein und fast nix im Code, sondern nur Daten..

Wie das geht gibt es da schon einige Links in diesem Thema.. Wenn du Startschwierigkeiten hast, dann gib Bescheid...

14.07.2016 - 10:22 Uhr

Ein bisschen Code wäre nicht schlecht zu sehen, XAML-Teil mit dem IsChecked und den Triggern? und die cs-Seite mit den Bindings..

Wie ich das verstanden habe, hat er schon was... ähnliches..

14.07.2016 - 08:42 Uhr

🤔 Ok aber war das nicht deine Frage, warum Variante 2 nicht funktioniert? ?(

Bzw. müßte man wissen, was der Unterschied der Konstruktion zwischen der direkten Klassenerstellung und des statischen Konstruktors ist.. Da bin ich jetzt aber auch überfragt! 😁

13.07.2016 - 15:38 Uhr

Hey,

es kommt darauf an, bei Felder, also Variablen innerhalb einer Klasse die meist so aussehen:



private int _zahl1;
private int m_zahl1;


sollten natürlich nicht geändert werden können, was man ja auch mit dem private angibt.

Dann gibt es noch Eigenschaften, die sehen einfach gemacht meistens so aus:



public int Zahl1 { get { return this._zahl1; } set { this._zahl1 = value; } }
// oder von außen Schreibgeschützt aber lesbar:
public int Zahl2 { get { return this._zahl1; } private set { this._zahl1 = value; } }

// Oder, wenn man keine Felder verwendet:
public int Zahl3 { get; set; }
// oder von außen Schreibgeschützt aber lesbar:
public int Zahl4 { get; private set; }


Auf Eigenschaften können in der Regel von außen zugegriffen werden, je nach Anforderungen...
Auf Felder normal nicht.

13.07.2016 - 09:31 Uhr

Hey,

also ich hab das gefunden:
ListCollectionView

Im Hinweis ganz unten steht:

When you bind to a data collection, you may want to sort, filter, or group the data. To do that, you use collection views. You can think of a T:System.Windows.Data.CollectionView as the layer on top of the binding source collection that allows you to navigate and display the source collection based on sort, filter, and group queries, all without having to manipulate the underlying source collection itself. If the source collection implements the T:System.Collections.Specialized.INotifyCollectionChanged interface, the changes raised by the E:System.Collections.Specialized.INotifyCollectionChanged.CollectionChanged event are propagated to the views.

All collections have a default T:System.Windows.Data.CollectionView. For all collections implementing T:System.Collections.IList, the T:System.Windows.Data.ListCollectionView object is the default view object. The T:System.Windows.Data.BindingListCollectionView is the collection view class used for collections that implement T:System.ComponentModel.IBindingList. **:::

For more information about collection views, see Data Binding Overview.

Also wird es wohl so sein, daß das Erstellen einer einfachen Instanz wohl nicht automatisch einen 'DefaultView' erzeugt und es nur durch Variante1 umzusetzen ist. (bitte berichtigt mich wenn ich falsch liege)

Hoffe das hilft dir weiter..

06.07.2016 - 10:06 Uhr

Ok,

hatte es durch


window.addEventListener("resize", this.actualizeTableHeader);

lösen können.

Vielen Dank für die Hilfe!

06.07.2016 - 09:46 Uhr

Oh man, ja das wars! 😁

Schon interessant die Umsetzung der Technik! 🤔

Jetzt hab ich darauffolgend ein weiteres Problem, nun wird "onresize" nicht mehr aufgerufen...

( Hatte das schon mal, recht seltsam (im VS2015Pro), änderte was im css, danach funzt das Event nicht mehr... selbst nach Cache leeren, Prj neu erstellen und IIS reseten, wie jetzt (wie vorher: Hatte zuvor das Script im HTML selbst stehen, danach in einem eigenen .js File übertragen, dann hatte es wieder gefunzt) )

Für mich ist das etwas undurchsichtig, zuvor gehts, jetzt nicht mehr nach dieser Änderung 🤔

06.07.2016 - 09:14 Uhr

( Das Ganze rennt unter ASP.NET MVC5 mit Layoutseite )

Hallo Leute!

Hab nun wieder eine Frage und zwar hab ich folgendes HTML-Tag:


<input id="RootInfo" name="RootInfo" value="@jsonvalue" type="hidden">

und möchte bei "onload" und "onresize" auf dieses Element zugreifen:


window.onload = this.actualizeTableHeader();
window.onresize = this.actualizeTableHeader();

// Aktualisieren der Kopf-Spaltenbreite:
function actualizeTableHeader() {
    debugger;

    var dataString = document.getElementById("RootInfo");
    if (dataString === null) { return; }
    var model = JSON.parse(dataString.value);
    if (model === null) { return; }
}

Bei "onresize" funktioniert die Funktion problemlos, nur bei "onload" wird bei


    var dataString = document.getElementById("RootInfo");

immer 'null' zurückgegeben.

Mein derzeitiges Wissen ist ja das, daß bei "onload" ja schon die ganze Seite fertig sein sollte und der Zugriff dann auf ein Element mit "id" normal kein Problem sein sollte, oder nicht?

( Hatte auch versucht das type="hidden" mal wegzunehmen, hatte natürlich keinen Sinn.. )

Bitte um Info, vielen Dank!
Grüße Thomas

29.06.2016 - 13:54 Uhr

Hallo,

ich hab eine wohl sehr einfache Frage für Euch, bin anscheinend zu blöd dafür:

Hab ein WinPhone 8.1 auf einem Lumia 1320 und möchte ganz einfach in unserem lokalen Netzwerk meine Webseite auf einem anderen Rechner testen.

Wie zum Teufel kann ich das anstellen? Mit dem Android und iPhone hatte es ohne weiteres funktioniert, nur beim WinPhone steh ich blöd da!

Ich ging überall gleich vor, Webbrowser öffnen und in der Adresszeile folgendes eingegeben:


http://[ip-adresse]/[webseite]
[ip-adresse]/[webseite]
http://[rechnername]/[webseite]
[rechnername]/[webseite]

Installierte sogar testweise den OperaMini um den IExplorer eventuell mal ausschließen zu können..
Bei beiden kann ich keine Verbindung herstellen...

Kennt das wer?

Vielen Dank, schöne Grüße!

13.06.2016 - 08:44 Uhr

Hey,

nicht böse sein aber der Code ergibt in meinen Augen keinen Sinn.

Sehen wir das mal in Ausführung:

  1. vor mir ist eine ListBox mit Daten,
  2. ich selektiere eine Zeile darin,
  3. durch das Event eines neuen SelectedIndex wird IMMER die Liste erweitert,
  4. ich selektiere wie wild verschiedene Zeilen in der ListBox,
  5. in innerhal weniger Sekunden ist die ListBox durch JEDE selektion um eine Liste neuer Informationen größer

1:) Ich denke das das eindeutig mal dass falsche Event ist, die ListBox mit Daten zu befüllen, das ist mal sicher
2:) Eine sehr bedürftige Darstellung von vorhandenen Informationen, aus denen heraus man nur hellsehen kann 😉 bitte wie schon gesagt mehr Infos... Was funktioniert genau nicht, was passiert beim Debuggen?

08.06.2016 - 15:46 Uhr

Oh man, danke!

Anscheinend wieder falsch gesucht... So viele Quellen aber kein Ergebnis und da, punkt genau die Antwort, danke!

08.06.2016 - 15:25 Uhr

Hallöchen,

ich hab mal wieder eine Frage, wie ist es bitte möglich, in meinem Beispiel bei einem ToggleButton wo 'IsChecked' gebunden ist zu registrieren, ob beim Click gleichzeitig die Shift-Taste gedrückt wird?


<ToggleButton Margin="2"
              IsChecked="{Binding Path=IsChecked, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"  
              Content="{Binding Path=CategoryText, Mode=OneWay}"/>

Ich kann mir vorstellen das 'Command' vom 'TogglButton' zu verwenden, nur wie macht man die Prüfung, ob beim Click gleichzeitig die Shift-Taste gedrückt wird?

Bitte um Hilfe, danke!

Schöne Grüße

07.06.2016 - 16:53 Uhr

es läuft genau einmal durch wie beim Programmstart. Es gibt gar keine Unterschiede.

Ja, haha, das dachte ich auch oft aber am Ende war genau auch da der Fehler begraben. Daher anscheinend nur da befüllt wird... (Außer es gibt noch andere Funktionen die da irgendwie eine Rolle spielen könnten?)

Gesamt zu wenig Infos um was anfangen zu können. Wie schon gesagt, die befüll-Methode wäre mal ein guter Anfang...

03.06.2016 - 13:02 Uhr

Dafür muss ich aber die ABC-Klasse schon wieder anpassen, was ich eher vermeiden möchte.

Sowas nennt man Lernprozess, kennt glaub ich ein jeder 😉
Ich könnte ein liedchen davon singen...
Einfach nach einer ordentlichen Pause (hilft immer ungemein) das Ganze angehen und es ist ja nicht so viel arbeit mit der ID...könnte sogar noch für weitere nützliche Dinge gut sein, die jetzt noch gar nicht bedacht waren.

03.06.2016 - 12:39 Uhr

Wenn ich das Event im Get (von AbcForView) auslösen würde, würde das ja eine Endlosschleife werden, weil das Event (im Get) alle Elemente der View (die an AbcForView gebunden sind) anstiften würde wieder das Get (von AbcForView) aufzurufen.

Hmm, warum machst du kein dummy Set dazu?

Ein "_AbcForView" Feld hinzufügen, im getter dieses zurückschicken und im setter die ganze Erstellung mit dem RaiseEvent...

Somit müßtest du beim set "AbcForView = null;" aufrufen und der Rest erledigt sich von selbst, obwohl das jetzt nicht Standard ist und auch nicht hübsch, nur in der aktuellen Lage...

Besser wäre in beiden Klassen ein ID Feld hinzufügen, bei dem man die 2 Klassen immer zusammenfinden und ohne ständig neue Instanzen zu erstellen, dann einfach die Properties der anderen Klasse berechnend zu ändern.

Somit würde sich das mit den Bindungsproblem auch lösen lassen...

03.06.2016 - 11:40 Uhr

Hey,

ähhm anscheinend hab ich irgendwas verpasst, warum du selbst das Event abonnierts, normaler weise mußt du das Event aufrufen...

(Und der Namen vom Property ist ja im PropertyChangedEventArgs enthalten...)

Edit1:
Ok, weiß jetzt nicht genau wie du das alles anstellst aber eine einfachere Methode wäre:


if(sender == null) return;
RaisePropertyChangedEvent(sender.GetType().Name);

02.06.2016 - 22:16 Uhr

Noch was weiteres:

Du stellst hier immer Blöcke rein, bei denen die wichtigen Teile fehlen...

Ich sehe, daß du jedes Mal innerhalb bei


public ObservableCollection<abcDXYVis> AbcForView

eine neue Instanz erstellst. Wäre mal nicht sooo schlimm.
Das was mir fehlt, ist die Stelle, an der diese 'AbcForView'-Property aktualisiert wird, z.Bsp.:


this.PropertyChanged(this, new PropertyChangedEventArgs("AbcForView"));

Daher es nur ein getter ist, wäre das in diesem Fall unbedingt notwendig, sonst tut sich nie was, weil es eben NICHT die gleiche OC ist vom generischen Typ her UND weil du immer eine neue Instanz erstellst.

02.06.2016 - 16:49 Uhr

Hey,

also bin ich jetzt komplett mischuggi oder ist es offensichtlich 😃 :


     public class abcDXYVis
    {
        public Thickness Margin { get; set; }
        public double D { get; set; }
        public Visibility Visible { get; set; }
    }

Diese Klasse enthält gar kein Property mit dem Namen 'Diameter', da kann ja keine Bindung vorhanden sein...


<Ellipse Width="{Binding abcForView [0].Diameter}" Height="{Binding abcForView [0].Diameter}" Stroke="Black" StrokeThickness="2" HorizontalAlignment="Center" VerticalAlignment="Center""/>

Oder täusch ich mich ?

01.06.2016 - 14:36 Uhr

Hey,

nur so rein intuitiv, wie oft wird denn dieses:


private void doc_PrintIt(object sender, PrintPageEventArgs e)

aufgerufen?

31.05.2016 - 16:07 Uhr

Noch zur Ergänzung, denn was ich nach dem


TextBox txt = element as TextBox;
txt.GetBindingExpression(TextBox.TextProperty).UpdateSource();

vemute ist das, das Ihm das Command nichtso ganz geläufig ist, hier ein kleines Tutorial Basis Command-Binding mit einem Button dazu..

31.05.2016 - 14:54 Uhr

Wpf funktioniert nicht ohne INotifyPropertyChanged.

Nun ja, funktioniert schon aber total häßlich und umständlich 😉

@NOFX,
Kannst du bitte diese Klasse posten wie die genau aussieht, dann kann man das besser erklären... danke!

31.05.2016 - 14:31 Uhr

In meiner ObservableCollection für das DataGrid sind relative Positionen, die ich umrechne und wieder als ObservableCollection für die geometrischen Objekte zur Verfügung stelle.

Kann man sich das jetzt so vorstellen, daß es EINE OC gibt, die an das DG gebunden ist UND zusätzlich für die geom.Objekte?

In der DG werden die Daten umgerechnet und sollten dann auch gleichzeitig die Objekte aktualisieren?

Wenn dem so ist, wie sieht dann ein so ein Item der OC aus?

31.05.2016 - 08:32 Uhr

Hallo, ich bilde mir ein, daß die Themenbeschreibung geändert wurde..

Also es muß ja doch einen Auslöser geben, wann geprüft werden soll, wenn es nicht gleich von Anfang an geschehen soll. Innerhalb dieses Auslösers sollte dann geprüft werden..

Wie auch immer, zu wenig Infos um genaueres sagen zu können..

30.05.2016 - 15:46 Uhr

Hallo, nach deinem Text her würde ich schätzen, daß die Prüfung beim Beenden des UserControls ausgeführt werden sollte und unter umständen das Beenden abgebrochen werden muß?

Sonst sind es schon wenige Infos..

25.05.2016 - 22:37 Uhr

Ich versuche auch meist mögliche Fehlerquellen weg zu 'if'en, so wie ich es hier gelernt habe 😉 gleich am Anfang der Methode.

Exception-Blöcke kommen bei mir nur weniger vor und fahre sehr gut damit..

06.05.2016 - 10:07 Uhr

Also ich hab das selbst lösen können, auch wenn es sehr makaver ist!

  1. Im menü unter Extras->Codeauschnitt-Manager
  2. Importieren...
  3. Den Ordner der eh schon vorhandenen Snippets auswählen, bei mir unter " C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC#\Snippets\1031\Visual C# "
  4. Alle markieren und bestätigen
  5. Ich hatte bei den kommenden Fragedialog angegeben, vorhandene Snippets überschreiben (vorher noch eine Sicherheitskopie machen, hatte ich nicht gemacht auf Risiko)

Danach hatten die Snippets wieder funktioniert...

Schöne Grüße!