Laden...

Forenbeiträge von Tr1umph Ingesamt 58 Beiträge

01.12.2012 - 15:53 Uhr

Hi

Das Authorize-Attribut nutze ich natürlich. Ich programmiere auch in der Regel ziemlich objektorientiert. Nur bin ich halt gezwungen mit dieser einen Klasse zu arbeiten. Bring doch mal als jemand der praktisch gerade von der Uni kommt dem Chef bei, dass man am besten alles was man in den letzten Jahren gemacht hat neu schreiben soll...

Die Session sollte man bei WebApi im übrigen nicht nutzen. 😉

Ich soll halt letztendlich diese dll nutzen um auf die entsprechenden Daten zuzugreifen. Und auf diese habe ich nur sehr begrenzten Zugriff.

Gibt es denn auch Wege abseits des korrekten Vorgehens?

01.12.2012 - 13:28 Uhr

Hi

Ich schreibe zur Zeit mit WebApi den Server für eine Website. Die Funktionalität der Website stand schon vorher auf Clients zur Verfügung. Für diese Clients gab es eine Libary die eine Klasse mit vielen statischen Methoden enthält.

Über diese Klasse wurde die gesamte Kommunikation mit der Datenbank geregelt. In ebenfalls statische Properties der Klasse wurden dazu vom Client bestimmte Authentifizierungsdaten gesetzt, auf die alle möglichen Methoden/Properties dieser und anderer Klassen dann wieder zugreifen.

Genau diese Klasse soll ich jetzt auch für meinen WebApi-Server nutzen. Nur das ich hier eben das Problem habe, dass ich für jeden Nutzer exklusiven Zugriff auf eine 'Instanz' dieser Klasse brauche. Da alles statisch ist, ist das natürlich ziemlich doof...

An dieser Klasse selber kann ich nicht viel ändern, da es einige Programme gibt die diese Nutzen. Alles umzuschreiben würde ewig dauern.

Daher meine Frage:
Gibt es eine Möglichkeit die Lebensdauer dieser Klasse auf eine Aktion zu beschränken? So dass ich bei jeder Aktion eine neue unberührte Klasse vorfinde bei der ich dann die statischen Properties exclusiv für diese Aktion setzen kann?

Gruß

06.11.2012 - 14:56 Uhr

Der Sinn würde darin liegen, dass nur autorisierte Nutzer die Javascripts sehen können.

05.11.2012 - 15:08 Uhr

Hi

Gibt es die Möglichkeit Bundles erst nach einem Login verfügbar zu machen?

MfG

Tr1umph

24.10.2012 - 10:58 Uhr

Ahoi!

Ich muss mit MVC4 ASP.NET eine WebSite basteln. Dazu muss ich mit einer schon vorhandenen Datenbank arbeiten. Auf das Schema habe ich also keinen Einfluss mehr. User und Rollen existieren schon.

Die WebSite benötigt natürlich ein Login-System. Ich würde natürlich gerne mit dem Authorize Attribut arbeiten können.

Was wäre der beste Weg dafür? Muss ich dafür den MembershipProvider und den RoleProvider überschreiben oder gibt es da noch andere bessere Wege?

Gruß

23.10.2012 - 12:54 Uhr

Hi,

die Frage ist zwar schon ein bisschen her, aber es wurde ja bisher noch keine Lösung genannt.

Visual Studio 2012 Color Theme Editor (mit ein paar zusätzlichen Themes):
Visual Studio 2012 Color Theme Editor

Und für die Icons:
http://vsip.codeplex.com/

Mit letzterem ist es möglich Icons von VS2010 zu extrahieren und in VS2012 rein zu packen. Sind zwar noch nicht alle, aber doch schon einige!

Gruß

03.09.2012 - 11:20 Uhr

Hi

Ich möchte über eine Website die Möglichkeit haben eine Datei hochzuladen. Auf der Server-Seite möchte ich WCF einsetzen.

Welche Technologie setze ich dafür am besten auf der Clientseite ein?

Gruß

29.08.2012 - 11:37 Uhr

Hi

Das hatte ich auch schon getestet. Macht bei mir keinen Unterschied.

Sonst noch wer ne Idee?

29.08.2012 - 10:48 Uhr

Moin.

Ich will ne Datei per Browser downloaden. Dafür habe ich bisher folgenden Code:



		[OperationContract]
		[WebGet(UriTemplate = "/DownloadFile/{versionId}")]
		Stream DownloadFile(string fileId);

		public Stream DownloadFile(string fileId)
		{
			try
			{
				string filePath = DataBaseHandler.GetFilePath(fileId);

				System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);

				// check if exists
				if (!fileInfo.Exists)
					throw new System.IO.FileNotFoundException("File not found", fileInfo.Name);

				// open stream
				System.IO.FileStream stream = new System.IO.FileStream(filePath, System.IO.FileMode.Open, System.IO.FileAccess.Read);

				WebOperationContext.Current.OutgoingResponse.ContentType = "application/octet-stream";
				WebOperationContext.Current.OutgoingResponse.Headers.Add("Content-Length", fileInfo.Length.ToString());
				WebOperationContext.Current.OutgoingResponse.Headers.Add("Content-Disposition", "attachment; filename=" + fileInfo.Name);

				return stream;
			}
			catch (Exception ex)
			{

			}
			return null;
		}

Der Download funktioniert auch im Prinzip. Allerdings wird die Größe des Downloads nicht angezeigt.

Jemand ne Idee woran das liegt?

Gruß

21.08.2012 - 11:59 Uhr

Hi

Ich bin gezwungen zukünftig VS2012 einzusetzen. Von den Funktionen her ist das ja auch ganz toll. Aber wenn ich jedes mal das große Kotzen kriege wenn ich auf den Bildschirm gucke, dann nutzt mir das nicht viel.

Daher meine Frage:

Gibt es eine Möglichkeit das Design von VS2012 zu ändern? Im Idealfall das ganze auf das Desgin von VS2010 zu stellen? Speziell auch die Icons und Menüleisten.

Gruß,

Tr1umph

09.08.2012 - 12:08 Uhr

Hi

Ich brauche für meine WPF App eine Möglichkeit einen Formatierten Text, mit Bildern, Auflistungen, etc. anzuzeigen. Das anzuzuzeigende Dokument wird zur Laufzeit von einem WebService geholt.

Wie das Formatiert ist ist zur Zeit noch offen. Das wird aber vorher manuell erstellt, solle also kein zu exotisches Format haben. HTML oder BB-Code wären meine Wahl.

Ich hatte zunächst an HTML gedacht, welches ich dann in einem WebBrowser-Control anzeige. Das wäre was das Dokument angeht ziemlich Flexibel. Jedoch ist das ganze ja nur ein Wrapper um das Windows Forms WebBrowser Control, wodurch man dann doch wieder ziemlich eingeschränkt ist. (z.B. kann man das Fenster nicht mehr Transparent machen). In jedem Fall ist das keine wirkliche Option.

Den HTMLToXaml Converter aus dem Samples habe ich auch mal ausprobiert. Das übernimmt aber die Formatierungen nicht so wie ich die brauche.

Jetzt bin ich am überlegen ob ich selber einen Parser für BB-Code schreibe. Bevor ich das mache wollte ich mich aber hier mal erkundigen ob nicht jemand eine Idee für eine einfache Lösung hat.

Jemand ne Idee?

Gruß

06.08.2012 - 11:18 Uhr

Hi

Mit Animationen habe ich bisher ziemlich wenig zu tun gehabt. Jetzt brauche ich die aber.

Generell sollte man UI und Funktionalität ja möglichst von einander trennen. Sprich Benutzeroberfläche wird in WPF geschrieben, Funktionalität im Code und die Verbindung zwischen beidem stellt das ViewModel her.

Bei den Animationen hätte ich jetzt eigentlich gedacht, dass die zum UI und damit ins WPF gehören. Bei den meisten Tuts im Internet und in den Büchern werden die jedoch im Code oder den Ressourcen definiert und über den Code aufgerufen.

Was ist da jetzt die gängigere, saubere Praxis?

Gruß

05.08.2012 - 22:33 Uhr

Hi

Ich habe ein UserControl. Irgendwo in diesem UserControl ist ein Border von dem ich die aktuelle Breite benötige.

Das wäre dann ActualWidth. Leider ist dieses Property ReadOnly und lässt sich daher nicht binden. Auch nicht mit Mode=OneWayToSource.

Wäre es sehr verwerflich wenn ich per Code direkt auf den Border zugreife? Was wäre da die sauberste Lösung?

Gruß

02.08.2012 - 17:06 Uhr

Hi

Ich habe eine Progressbar mit dem Property IsIndeterminate=true.

Die macht jetzt auch im Prinzip das was Sie soll. Es läuft ein Balken von links nach rechts. Nur sind mir die Wartezeiten zwischen "aus dem rechten ProgressBar Rand verschwinden und bei dem Linken wieder auftauchen viel zu lang.

Gibt es eine Möglichkeit diese Zeiten zu beeinflussen?

Gruß

14.05.2012 - 15:20 Uhr

Hi

Ich habe eine Klasse: "DataList<T> where T:DataRow"

DataRow ist eine von mir geschriebene Klasse, welche als Basisklasse für verschiedene Datensätze dient. DataList<T> legt die Datensätze intern in eine static List<T> ab, so dass DataList<T> für mein gesamtes Projekt als Datenquelle dienen kann.

Zudem hat DataList<T> einige public static Methoden, wie zum Beispiel Reset, Save, Reload, etc.

Hin und wieder kommt es jetzt vor, dass ich eine dieser Funktionen für jedes DataList<T> ausführen muss. Das endet bisher in einer Liste zum Beispiel:

DataList<blub>.Save();
DataList<foo>.Save();
DataList<bar>.Save();
DataList<abc>.Save();
...

Gibt es eine Möglichkeit diese Auflistungen zu umgehen? Die werden nämlich ziemlich lang, unübersichtlich und lästig zu pflegen...

Gruß

09.05.2012 - 11:51 Uhr

Hi

Fehlermeldung:
Fehler 1 "System.ArgumentException" wurde in "X.xaml" ausgelöst: GenericArguments[0], "System.Object" für "Blub`1[T]" überschreitet die Einschränkung von Typ "T".

Dieser Fehler kommt immer wenn ich die X.xaml Datei im Visual Studio bearbeite. Weder der Designer, noch der Compiler stören sich daran. Wenn ich das Projekt neu erstelle, dann ist der Fehler erst weg und kommt dann aber ziemlich schnell wieder.

Das einzige wie der sich bemerkbar macht ist, dass IntelliSense nicht mehr funzt.

T muss per Definition von einer anderen Klasse abgeleitet sein, was ich aber eigentlich auch überall berücksichtige.

Bei Google habe ich zu dem Fehler nichts gefunden.

Jetzt meine Frage:

  1. Jemand ne Ahnung woher der kommt?
  2. Kann man den Fehler irgendwie ignorieren, bzw zumindest verhindern das IntelliSense ausgeschaltet wird?

Gruß

07.03.2012 - 16:28 Uhr

Also gibt es keine Möglichkeit an das Typargument anhand einer Instanz ranzukommen?

07.03.2012 - 16:00 Uhr

Hi

Folgendes Beispiel:



public class Blub<T> where T:Ber
{
     public static void irgendwas(...){...}
}

Wenn ich jetzt in einer anderen Klasse eine Instanz von einer von Ber abgeleiteten Klasse habe, aber zur Laufzeit nicht genau sagen kann welche das ist, wie kann ich dann die Statische Methode von Blub aufrufen?

Sprich wie komme ich dann bei
Blub<T>.irgendwas(...);

zur Laufzeit an das T?

Gruß

06.03.2012 - 15:47 Uhr

Hi,

danke für die Antworten.

Dem Benutzer kann ich leider nichts um die Ohren schmeißen. Die Adressen bekomme ich aus einer Datenbank die ich selber nur Auslese. Das fehlerhafte E-Mail Adressen drin sind hat wohl jemand anders verpfuscht.

Wenn ich das jetzt richtig verstanden habe gibt es keine Regel wie die Umlaute verändert werden müssten. Dann kann man da wohl nichts machen.

Gruß, Tr1umph

05.03.2012 - 13:31 Uhr

Hi

Wie genau geht man damit um, wenn in der E-Mail-Adresse vor dem @-Zeichen irgendwelche Umlaute stehen? Gibt es Regeln nach denen man die Umlaute umwandeln muss?

Gruß, Tr1umph

23.02.2012 - 18:55 Uhr

Hi

Folgendes Problem: Ich habe ein Fenster, bei dem sich die Breite jenachdem was im Programm passiert ein wenig ändern kann. Dafür setze ich für das Fenster:

Fenster.SizeToContent = System.Windows.SizeToContent.Width;

Das funktioniert auch wunderbar. Allerdings soll der User nicht die Möglichkeit die Breite von Hand zu verstellen. Bei der Höhe darf und muss er das teilweise. "ResizeMode.NoResize;" verhindert allerdings die veränderung der Größe in beide Richtungen.

MaxWidth und MinWidth verhindern, dass das Programm die Breite anpasst. Das würde also auch nicht gehen.

Hat irgendwer ne Lösung für mein Problem?

Gruß

-edit-

Danke, dein Tip hat mich zur Lösung geführt!

21.02.2012 - 10:32 Uhr

Hi

Ich habe ein TabControll mit mehreren TabItems. In jedem TabItem ist unter anderem ein DataGrid. In diesen DataGrids werden Tabellen aus einer DB angezeigt. Für jede Tabelle gibt es eine Klasse welche eine Reihe darstellt. In Tabellen in denen Schlüssel auf Reihen anderer Tabellen werweist wird anstatt des Schlüssels das entsprechende Objekt aus der anderen Klasse verwendet. Dieses Objekt hat dann eine überschriebene ToString Methode wodurch ein mehrsagender Text angezeigt wird.

Wenn ich jetzt in Tabelle 1 einen Wert in einer DataGridTextColumn editiere und ohne das Editieren zu beenden auf einen anderen Tab klicke in dem das DataGrid auf Werte aus der Tabelle 1 zugreift, wird folgende Exception geworfen:

Fehlermeldung:
"DeferRefresh" ist während einer AddNew- oder EditItem-Transaktion nicht zulässig.

bei System.Windows.Data.CollectionView.DeferRefresh()
bei System.Windows.Controls.ItemCollection.SetCollectionView(CollectionView view)
bei System.Windows.Controls.ItemCollection.SetItemsSource(IEnumerable value)
bei System.Windows.Controls.ItemsControl.OnItemsSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
bei System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
bei System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
bei System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
bei System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
bei System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
bei System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
bei System.Windows.Controls.DataGridHelper.SyncColumnProperty(DependencyObject column, DependencyObject content, DependencyProperty contentProperty, DependencyProperty columnProperty)
bei System.Windows.Controls.DataGridComboBoxColumn.ApplyColumnProperties(ComboBox comboBox)
bei System.Windows.Controls.DataGridComboBoxColumn.GenerateElement(DataGridCell cell, Object dataItem)
bei System.Windows.Controls.DataGridCell.BuildVisualTree()
bei System.Windows.Controls.DataGridCell.PrepareCell(Object item, DataGridRow ownerRow, Int32 index)
bei System.Windows.Controls.Primitives.DataGridCellsPresenter.PrepareContainerForItemOverride(DependencyObject element, Object item)
bei System.Windows.Controls.ItemsControl.MS.Internal.Controls.IGeneratorHost.PrepareItemContainer(DependencyObject container, Object item)
bei System.Windows.Controls.ItemContainerGenerator.System.Windows.Controls.Primitives.IItemContainerGenerator.PrepareItemContainer(DependencyObject container)
bei System.Windows.Controls.DataGridCellsPanel.InsertContainer(Int32 childIndex, UIElement container, Boolean isRecycled)
bei System.Windows.Controls.DataGridCellsPanel.AddContainerFromGenerator(Int32 childIndex, UIElement child, Boolean newlyRealized)
bei System.Windows.Controls.DataGridCellsPanel.GenerateChild(IItemContainerGenerator generator, Size constraint, DataGridColumn column, Int32& childIndex, Size& childSize)
bei System.Windows.Controls.DataGridCellsPanel.DetermineRealizedColumnsBlockList(Size constraint)
bei System.Windows.Controls.DataGridCellsPanel.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
bei System.Windows.Controls.ItemsPresenter.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Control.MeasureOverride(Size constraint)
bei System.Windows.Controls.Primitives.DataGridCellsPresenter.MeasureOverride(Size availableSize)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)
bei System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV)
bei System.Windows.Controls.Grid.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Border.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Control.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.VirtualizingStackPanel.MeasureOverride(Size constraint)
bei System.Windows.Controls.Primitives.DataGridRowsPresenter.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
bei System.Windows.Controls.ItemsPresenter.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
bei System.Windows.Controls.ScrollContentPresenter.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)
bei System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV)
bei System.Windows.Controls.Grid.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.ScrollViewer.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Border.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Control.MeasureOverride(Size constraint)
bei System.Windows.Controls.DataGrid.MeasureOverride(Size availableSize)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)
bei System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV)
bei System.Windows.Controls.Grid.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Grid.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
bei System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Border.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Control.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)
bei System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV)
bei System.Windows.Controls.Grid.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
bei System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
bei System.Windows.FrameworkElement.MeasureCore(Size availableSize)
bei System.Windows.UIElement.Measure(Size availableSize)
bei System.Windows.ContextLayoutManager.UpdateLayout()
bei System.Windows.UIElement.UpdateLayout()
bei System.Windows.Controls.TabItem.OnPreviewGotKeyboardFocus(KeyboardFocusChangedEventArgs e)
bei System.Windows.UIElement.OnPreviewGotKeyboardFocusThunk(Object sender, KeyboardFocusChangedEventArgs e)
bei System.Windows.Input.KeyboardFocusChangedEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
bei System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
bei System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
bei System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
bei System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
bei System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
bei System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
bei System.Windows.Input.InputManager.ProcessStagingArea()
bei System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
bei System.Windows.Input.KeyboardDevice.TryChangeFocus(DependencyObject newFocus, IKeyboardInputProvider keyboardInputProvider, Boolean askOld, Boolean askNew, Boolean forceToNullIfFailed)
bei System.Windows.Input.KeyboardDevice.Focus(DependencyObject focus, Boolean askOld, Boolean askNew, Boolean forceToNullIfFailed)
bei System.Windows.Input.KeyboardDevice.Focus(IInputElement element)
bei System.Windows.UIElement.Focus()
bei System.Windows.Controls.TabItem.SetFocus()
bei System.Windows.Controls.TabItem.OnMouseLeftButtonDown(MouseButtonEventArgs e)
bei System.Windows.UIElement.OnMouseLeftButtonDownThunk(Object sender, MouseButtonEventArgs e)
bei System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
bei System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
bei System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
bei System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
bei System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
bei System.Windows.UIElement.OnMouseDownThunk(Object sender, MouseButtonEventArgs e)
bei System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
bei System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
bei System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
bei System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
bei System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
bei System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
bei System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
bei System.Windows.Input.InputManager.ProcessStagingArea()
bei System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
bei System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
bei System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
bei System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
bei System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
bei MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
bei MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
bei MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
bei System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
bei MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
bei MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
bei System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
bei System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
bei System.Windows.Threading.Dispatcher.Run()
bei System.Windows.Application.RunDispatcher(Object ignore)
bei System.Windows.Application.RunInternal(Window window)
bei System.Windows.Application.Run(Window window)
bei System.Windows.Application.Run()
bei ***.App.Main() in ***\obj\x86\Debug\App.g.cs:Zeile 0.
bei System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()

Ein Workaround welches ich hier gefunden habe funktioniert nicht.

Kennt da wer noch ne Lösung?

Gruß

Tr1umph

10.01.2012 - 19:10 Uhr
                        <DataTrigger Value="False">
                            <DataTrigger.Binding>
                                <Binding Path="IsListModified" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type local:TableBaseListControll`1}}"/>
                            </DataTrigger.Binding>
                            <Setter Property="IsEnabled" Value="False"/>
                        </DataTrigger>

Der DataTrigger sieht bisher so aus. Dieses `1 wurde mir vom VisualStudio so vorgeschlagen. Hat wohl was damit zu tun, dass das ne generische Klasse ist? Funktionieren tut das ganze so nicht.

-edit-

Funktioniert jetzt, habe das Property in ein Interface ausgelagert, welches ich dann als Typ angegeben habe.

Gruß

10.01.2012 - 18:23 Uhr

Hi

Ich habe folgende Situation:

In UserControl1 will ich per DataTrigger einen Wert ändern, jenachdem ob ein bool-Wert, welchen UserControl3 von einer generischen Basisklasse erbt, true oder false ist.

UserControl1 wird irgendwo in UserControl2 genutzt, welches widerum irgendwo im UserControl3 benutzt wird.

Hat jemand einen Vorschlag wie man das hinbekommt?

Gruß

04.10.2011 - 11:29 Uhr

Hi

Ich habe ein Problem mit einem Programm. Es geht um C# .net 2.0 mit Windows Forms.

Das ganze ist in etwa so aufgabaut (PseudoCode):

public void TimerTick (....)
{
   timer.enabled=false;
   
   aufgabenliste_erstellen(); //einige Sachen werden  überprüft und eine Aufgabenliste wird erstellt

   if(workerThread.ThreadState == ThreadState.Running && aufgabenliste.Count>0)
   {
        StarteWorkerThread(); //(workerThread = new Thread(..); .Start();
   }

   timer.enabled=true;
}


public void WorkerThreadStartMethode()
{
     while(Aufgaben vorhanden)
     {
        Writelog("Starte Aufgabe...");
        AufgabeErledigen;

        Writelog("Fertig");
    }
}

public void Writelog(string msg)
{
     if(Invokerequired)
     {
          this.Invoke(Writelog(msg));
          return;
     }
     ListBox.AddItem(msg);
}

Mein Problem ist jetzt, dass in einem Praxistest die Aufgaben laut Log teilweise gleichzeitig abgearbeitet werden.

Die Ausgabe sieht also teilweise so aus:
Starte Aufgabe...
Starte Aufgabe...
Starte Aufgabe...
Starte Aufgabe...
Fertig
Fertig
Fertig
Fertig

Der Fehler ist bisher nur in der Praxis aufgetreten. Sprich ich konnte den beim Debuggen bisher nicht simulieren.

Kann mir jemand sagen woran das liegen könnte?

Gruß

06.09.2011 - 11:46 Uhr

Das Ergebnis ist das gleiche.

Habe aber mittlerweile herausgefunden, dass das Problem wohl mit MS Outook zu tun hat. Wenn ich das ganze an eine gmx-Adresse schicke und bei gmx "nur Text" einstelle, dann bekomme ich den richtigen Textbody angezeigt.

Bisher habe ich bei Outook nur unter den Sicherheitseinstellungen "Standardnachrichten Als Nur-Text-Format lesen" eingestellt. Gibt es vielleicht noch eine andere Stelle an der ich da was umstellen muss? Bei Google habe ich da bisher nichts anderes gefunden 😕

Oder ist MS Outlook 2010 ganz einfach zu blöd um damit umzugehen?

Gruß

06.09.2011 - 11:03 Uhr

Hi

Ich muss für ein Programm die Möglichkeit haben eine E-Mail zu schreiben, welche einen Textpart und einen HTMLpart hat.

Bisher habe ich das so versucht wie es im Beispiel unter folgendem Link beschrieben ist: System.Net.Mail - How to add Alternate views and Embed Images

Mein Problem ist, dass die E-Mail nur als HTML richtig angezeigt wird. Sobald ich bei meinem E-Mail-Client (MS Outook 2010) einstelle, dass der die E-Mails als Text anzeigen soll, bekomme ich nur noch die bei Bildern hinterlegten Alt-Texte angezeigt. Den Textteil den ich hinterlegt habe ist aber definitiv etwas anderes.

Hat wer ne Ahnung was ich da falsch mache?

					MailMessage mail = new MailMessage();
					mail.Subject = subject;
					mail.From = new MailAddress(fromAdress, FromName);
					mail.To.Add(new MailAddress(receiver[i]));
					AlternateView plainView = AlternateView.CreateAlternateViewFromString(textBody); // auch schon mit (textBody, null, "text/plain") versucht
					mail.AlternateViews.Add(plainView);

					AlternateView htmlView = AlternateView.CreateAlternateViewFromString(htmlBody, null, "text/html");
					for (int f = 0; f < linkedResources.Count; f++)
					{
						htmlView.LinkedResources.Add(linkedResources[f]);
					}
					mail.AlternateViews.Add(htmlView);

					smtp.Send(mail);

Gruß

29.08.2011 - 11:16 Uhr

Hi

Das Scrollen in der ComboBox geht nicht mehr. Diese hat teilweise so viele Items, dass das Scrollen auf jeden Fall notwendig ist 😉

Gruß

26.08.2011 - 11:18 Uhr

Ahoi.

In einem ScrollViewer befinden sich ein paar DataGrids. In diesem DataGrids, welche selber nie eine Scrollbar haben, habe ich per TemplateColumn eine leicht abgeänderte ComboBox. Die Änderungen haben mit dem scrollen nix zu tun.

Mein Problem ist jetzt, dass das Scrollen mit dem Mausrad in der ComboBox nicht mehr funktioniert.

Wie kann ich das Problem beheben? Gibt es vielleicht eine Möglichkeit irgendwie an den Scrollview im Popup der ComboBox zu kommen?

Gruß

23.08.2011 - 15:59 Uhr

Hi

Ich habe in meinem DataGrid eine TemplateColumn für Bilder. Im EditModus ist da ein Button, über welchen ich ähnlich wie bei einer ComboBox unter der Spalte ein PopUp öffne. In diesem Popup ist eine größere Vorschau vom Bild, sowie ein Button für das Löschen bzw austauschen des Bildes.

Mein Problem besteht jetzt darin, dass die Zelle wieder vom Edit-Modus in den Normalen Modus springt, sobald ich auf einen der Buttons vom Popup klicke.

Wie kann ich das verhindern?

-edit-

Hat sich erledigt. Hab die IsFocusable Property von den Buttons auf False gesetzt;

Gruß

23.08.2011 - 11:35 Uhr

Das DataGrid weiß beim Start noch nicht was für eine Tabelle es anzeigen muss. Das wird erst zur Laufzeit festgelegt. Und auch wenn das nicht optimal ist, ändern kann/will ich es jetzt nicht mehr.

Da erst zur Laufzeit bekannt ist welche Tabelle ins DataGrid kommt, weiß das Programm auch erst zur Laufzeit, welche Spalte von welchem Typ ist und welche Art von Column wiederum dafür verwendet werden muss. Das Binding kann ich also nicht wirklich statisch machen.
Falls ich damit falsch liege, korrigiere mich bitte. Ist immer noch mein erstes WPF Projekt 😉

Bisher habe ich es mit dem FrameworkElementFactory versucht, wo ich aber daran gescheitert bin die Bindings zu übertragen.
Außerdem habe ich es mit dem XAML-Reader versucht, wobei das mit den Events nicht geklappt hat.

Wie mache ich das denn jetzt richtig?

-edit-

Hat sich erledigt.

23.08.2011 - 10:41 Uhr

Hi

Ich muss eine DataGridTemplateColumn erstellen. Dieses soll in jeder Spalte ein an die Spalte angepasstes Bild anzeigen. Im Edit Modus soll das angepasste Bild inc. ein Button angezeigt werden.

Beim Klick auf dem Button soll ein Popup mt einem vergrößertem Bild sowie zwei Buttons zum ändern und löschen des Bildes.

Das Bild selber kommt jeweils aus einer DB. Das Binding hierfür MUSS zur Laufzeit erstellt werden.

Soweit so gut.

Ich habe jetzt ein CustomControl das genau das macht was ich brauche.

Wie bekomme ich das jetzt hin, dass ich ein DataGridTemplateColumn mit meinem CustomControl fütter, ohne dass die Bindings und EventHandler mir um die Ohren fliegen?

Gruß

19.08.2011 - 12:17 Uhr

Hi

Ich habe ein DataGrid, welches über die ItemSource-Eigenschaft mit einer DataTable gefüttert wird.

Die SelectedItems vom DataGrid sind alles nur DataRowViews. Ich brauche aber für eine spezielle Aufgabe die dazugehörigen DataGridRowHeader und die DataGridRow.

Wie komme ich daran?

Gruß

16.08.2011 - 09:34 Uhr

Ich bin allem Anschein nach zu blöd dafür. Ich habs mal nach dem Beispiel im zweiten Post unter folgendem Link versucht: How can I apply a custom sort rule to a WPF DataGrid?

Allerdings bekomme ich kein ListCollectionView zurück, sondern ein BindingListCollectionView, wo es aber kein CustomSort gibt.

Irgend nen Vorschlag? 😕

12.08.2011 - 10:49 Uhr

Hi

Den Rest vom Programm habe ich praktisch fertig. Aus welcher Tabelle welche Datenbanken geladen werden steht beim Programmstart noch nicht fest, weshalb das alles ziemlich dynamisch gehalten ist.

Mit dem ModelView kenne ich mich nicht aus. Das hier ist mein erstes richtiges WPF-Projekt. Ist es auf einfachem Weg möglich die Converter mit dem ModelView zu ersetzen? Weil wenn ich dafür das ganze Programm umstricken muss, dann kommt diese Lösung für mich nicht mehr in Frage. Ob die jetzt sauberer wäre oder nicht 😉

Ist das mit dem Modelview die einzige Möglichkeit?

Gruß

09.08.2011 - 11:35 Uhr

verwendetes Datenbanksystem: MS SQL Server 2k8

Hi

Ich fülle mein DataTable per SqlDataAdapter. Dabei werden einige Eigenschaften wie z.B. ob NULL-Werte zugelassen werden, der genaue DatenTyp in der DB sowie dessen Länge nicht in die DataTable übertragen.

Meine Frage ganz einfach: Warum? Und wie bekomme ich das hin?

Gruß

09.08.2011 - 09:49 Uhr

Hi

Ich habe in meinem DataGrid Daten aus einer DB. Die PrimaryKeys sind allesamt Guids. In meinem DataGrid lasse ich mir die Fremdschlüssel mittels Converter durch mehrsagende Daten ersetzen.

Wenn ich die Spalte jetzt aber sortieren will, dann scheint der nach dem Guid zu sortieren und nicht nach den angezeigten Daten.

Gibt es ne Möglichkeit das zu ändern?

Gruß

08.08.2011 - 09:28 Uhr

Hi

Ich habe in einem Scrollviewer ein Grid. In diesem Grid sind neben ein paar Buttons auch ein DataGrid. Das Grid wird immer so groß wie es denn sein will. Das DataGrid hat also selber nie eine Scrollbar.

Der Scrollviewer an sich funzt wunderbar. Das einzige Problem was ich habe ist das Scrollen per Mausrad. Sobald ich mit dem Mauszeiger über dem DataGrid bin, funzt das scrollen per Mausrad für den Scrollviewer nicht mehr.

Was kann man da machen?

Gruß

04.08.2011 - 14:55 Uhr

Ich hab die Tage etwas ähnliches gemacht. Allerdings habe ich AutoGenerateColumns auf false gesetzt und die Columns selber definiert.

Wenn das für dich auch in Frage kommt, dann sollte sich dein Problem so lösen lassen:

DataGridTextColumn col = new DataGridTextColumn();
col.Header = "test";
Binding bind = new Binding("Spaltenname") //<-- Der Name der Spalte in der DataTable die in diese Column soll
bind.Mode = BindingMode.TwoWay;
col.Binding = bind;

dataGrid.Columns.Add(col);

Den DefaultView deiner DataTable dann einfach auf den ItemSource des DataGrids setzen und schon sollte es funzen.

Wie man das ganze mit AutoGenerateColumns = true macht weiß ich nicht. Musst mal gucken ob man dafür den BindingMode auch irgendwo auf TwoWay setzen kann 😉

-edit-

btw, manchmal hilft auch einfach ein dataGrid.Items.Refresh();-)

Gruß

04.08.2011 - 12:12 Uhr

Hi

Ich arbeite zur Zeit an einem Programm zur Verwaltung einer Datenbank. Dabei muss es natürlich möglich sein Suchabfragen abzusetzen.

So eine Tabelle kann mit ein paar Joins ganz schnell mal 20 - 50 Spalten haben. Damit das ganze übersichlich bleibt soll das Suchfenster dynamisch erzeugt werden. Das ganze hatte ich mir in etwa so vorgestellt:

Ich habe eine Liste mit Spalten die sofort für die Suche zur verfügung stehen. Diese soll folgendermaßen Dargestelt werden:

| Spaltenname | Input | CheckBox | Button |
| Spaltenname | Input | CheckBox | Button |
| Spaltenname | Input | CheckBox | Button |
| Spaltenname | Input | CheckBox | Button |

Input: Wonach gesucht werden soll. Kann je nach Spaltentyp aus Textbox, CheckBox, ComboBox, DateTimePicker, ... oder Kombinationen daraus bestehen.
CheckBox: Wenn Checked, dann in die Suche mit einbeziehen, sonst nicht.
Button: Zum Löschen der Suchspalte

Außerdem eine Liste mit den nicht sofort zur Verfügungstehenden Spalten. Diese soll in einer ComboBox angezeigt werden. Die Spalten sollen ausgewählt und in die obere Liste verschoben werden können.

Meine Frage ist jetzt, welches Control ich für die Anzeige der ersten Liste am besten nutzen kann. Wichtig ist halt, dass ich zur Laufzeit Reihen hinzufügen sowie löschen kann und es flexibel genug für den Input ist.

Gruß

02.08.2011 - 14:33 Uhr

Es geht um ein Programm zur Verwaltung einer Datenbank. In einem TabItem soll ein DataGrid für die Daten angezeigt werden. Außerdem jenachdem was für eine Tabelle das TabItem gerade anzeigt ein weiteres DataGrid mit zusatzinfos zum im ersten DataGrid ausgewählten Item angezeigt werden. Zudem ggf. für dieses zweite DataGrid ein weiteres DataGrid. Mehr als 2 DataGrids für Zusatzinfos wirds aber nicht geben.
Dazu kommen noch an die Tabelle angepasste Suchmasken und etwas um neue Datensätze einzufügen.

Das TabItem soll halt immer für die entsprechenden Tabllen angepasst sein.

Meine Vorgehensweise wäre jetzt, dass ich mir selber ein TabItem so umschreibe, dass es auf die entsprechenden Daten reagiert.

Allerdings ist das mein erstes WPF-Projekt. Daher wollte ich halt vorher fragen, ob es da vielleicht sinnvollere Wege gibt 😉

Das mit Dynamic habe ich vielleicht etwas falsch ausgedrückt^^

Gruß

02.08.2011 - 13:56 Uhr

Hi

Sagen wir mal ich brauche TabItems welche vom Aufbau her immer ähnlich sind. Wie es aber letztendlich aufgebaut ist liegt an Daten die erst zur Laufzeit geladen werden.

Wie macht man das jetzt am besten?

Ich würde es jetzt so machen, dass ich eine Klasse vom TabItem ableite und dann selber ein Spezielles TabItem bastle welches meine Anforderungen erfüllt.

Gibt es da noch andere Möglichkeiten?

Gruß

02.08.2011 - 09:26 Uhr

Moin, sorry für die unvollständige Beschreibung. Hatte das Problem gestern wohl noch nicht ganz analysiert.

Also die Rowdetails bestehen in meinem Fall aus nem TabControll welches weitere DataGrids enthält. Das kann schon mal eine Höhe einnehmen die über die Bildschirmhöhe hinaus geht, muss aber nicht.

Das Problem ist nun, dass ich sobald ich mit dem Mauszeiger auf eine der Detail-DataGrid bin, ich mit dem Mausrad nicht mehr das Haupt-DataGrid scrollen kann.

Gibt es ne Möglichkeit das Mausradscrollen an das Haupt-DataGrid weiterzuleiten?

-edit-

Was anderes das beim Scrollen noch nicht funzt ist folgendes:

Wenn eine Zeile mit geöffnetem RowDetails nach oben hin aus der Sicht verschwindet, dann überscrollt der auch gleich die kompletten RosDetails. Unabhängig davon wie groß die sind. Kann man das auch noch irgendwie ändern?

01.08.2011 - 17:25 Uhr

Hi

Ich hab nen DataGrid in welchem für jede Zeile RowDetails angezeigt werden können. Mal sind es mehr, mal weniger.

Jetzt ist es blöderweise nicht möglich, bei den RowDetails zu scrolen. Ich hätte es gerne so, dass ich ganz normal über die Scrollbar vom DataGrid auch innerhalb der RowDetails weiterscrollen kann.

Gibt es da ne Möglichkeit?

Gruß

01.08.2011 - 13:11 Uhr

Hi

Ich habe ein DataGrid welches RowDetails für jede Zeile anzeigt. Der Inhalt der RowDetails wird aus einer Datenbank geladen. Bei Strg+A hat man dann entsprechende Wartezeiten, da das DataGrid mehrere Tausend einträge enthält 😉

Für den Nutzer reicht es aus, wenn 5 RowDetails gleichzeitig angezeigt werden können. Nur ein einzelner wäre aber definitiv zu wenig.

Wie bekommt man so eine Begrenzung am besten hin?

Gruß

01.08.2011 - 12:52 Uhr

Wenn ich das jetzt auf die schnelle mit dem INotifyPropertyChanged richtig verstanden habe müsste meine Klasse davon abgeleitet werden?

Das Problem davon ist, dass die Klasse die den int zur Verfügung stellen soll bereits von einer anderen Klasse abgeleitet ist. Soweit ich weiß gibt es ja in C# keine Mehrfachvererbung?

01.08.2011 - 11:54 Uhr

Hi

Ich übergebe einer Klasse per Konstruktor eine Refferenz auf nen int. Diese Refferenz würde ich in dieser Klasse jetzt gerne speichern, so dass die neue Klasse immer den aktuellen int-Wert hat.

In C++ wäre das mit Pointern relativ einfach gewesen. Aber wie regelt man das in C#?

class blub
{
     int x;

     public blub(ref int y)
     {
          x = y;
     }
}

Gruß

26.07.2011 - 11:39 Uhr

Jau danke dir, hat soweit geklappt.

War zwar genau so viel frickelarbeit wie mein erster Ansatz, aber im Ergebnis funktioniert es wenigstens 😃

Gruß

25.07.2011 - 19:45 Uhr

Gibt es denn im XAML ne Möglichkeit nem Converter Parameter zu übergeben? Ich wüsste nicht wie ich sonst mit der Lösung halbwegs sauber hinbekommen könnte dem Converter mitzuteilen von welcher DB-Tabelle der sich welche Daten für die vorhandene ID holen soll?

25.07.2011 - 19:17 Uhr

Was genau meinst du mit "Standardfunktionalität zum Gruppieren"?

Meine Anforderungen an die Lösung sind folgende:
Ich lese aus einer XML-Datei Daten aus, die dem Datagrid sagen, welche Tabelle (Tabellen bei Joins) er aus welcher Datenbank auslesen soll. Zudem ist in der DB angegeben, welche Spalten wie Dargestellt werden sollen (ComboBox, Checkbox, Datum, Readonly, Visible,...) und eben ob und wenn ja nach welcher Spalte Gruppiert werden soll. Die Spalte kann ggf. nur IDs enthalten, über die dann natürlich für den Anwender mehrsagende Infos aus der Datenbank gefischt werden müssen. Kann alles vorkommen, muss aber nicht immer.

Ich programmiere erst seit ein paar Wochen mit WPF, wenn du mir jetzt also eine einfache Möglichkeit nennen kannst wie ich das umsetzen kann, wäre ich dir sehr dankbar 😃

Gruß