Laden...
C
c-killer myCSharp.de - Member
Heilbad Heiligenstadt Dabei seit 13.05.2008 92 Beiträge
Benutzerbeschreibung

Forenbeiträge von c-killer Ingesamt 92 Beiträge

20.07.2010 - 08:17 Uhr

Hallo,

ich arbeite jetzt seit etwa einem Jahr mit dem MVVM-Pattern und bin damit sehr zufrieden und glücklich. Nun bin ich seit kurzem in einem neuen Projekt und da tauchen teilweise sehr unterschiedliche Interpretationen von MVVM auf. Ein Kollege von mir ist der Ansicht, dass es immer nur ein Model, ein ViewModel und beliebig viele Views geben darf. Ich habe mich prinzipiell an den Beispielen von Josh Smith orientiert, wobei es beispielsweise ein CustomerViewModel gibt und dann auch ein AllCustomerViewModel, was alle CustomerViewModels in einer ObservableCollection beinhaltet. Mein Kollege würde dafür zwar auch zwei ViewModels schreiben, die aber unabhängig voneinander sind: das AllCustomerViewModel dient der Anzeige der Übersicht und baut auf ein AllCustomerModel auf, dass eine Collection von Customer-Datenobjekten beinhaltet. Das CustomerViewModel dient der Detailansicht und Bearbeitung und baut auf ein CustomerModel auf. Er ist der Überzeugung, dass es für ein Scenario nur genau ein ViewModel und genau ein Model geben darf. Wenn das Scenario sich ändert (bspw. statt der Übersicht soll die Detailansicht angezeigt werden), wird ein neues ViewModel und Model verwendet.
Ich bin der Überzeugung, dass es gleichzeitig mehrere ViewModel und Models geben kann, die einander in Relation stehen. Beispielsweise könnte ein Projekt auch eine Collection von Usern (Projektmitglieder) haben, wenn die für das Projekt relevant sind.

Wie seht ihr das?

07.06.2010 - 16:31 Uhr

Du hast natürlich vollkommen recht! Daran habe ich nicht gedacht. Dafür bin ich jetzt um einige Erfahrungen mit den VisualTreeHelper reicher 😉

Dank nochmal!

07.06.2010 - 14:18 Uhr

Danke. Ich habe meine Lösung im anderen Beitrag gepostet.

07.06.2010 - 14:16 Uhr

Ich hatte genau das gleiche Problem und habe es dank deines Hinweises wiefolgt gelöst:


    /// <summary>
    /// Exposes attached behaviors that can be applied to ListBoxItem objects.
    /// </summary>
    public static class ListBoxItemBehavior
    {
        #region IsSelectingOnPreviewMouseLeftButtonDown

        /// <summary>
        /// Gets the is selecting on preview mouse left button down.
        /// </summary>
        /// <param name="listBoxItem">The list box item.</param>
        /// <returns></returns>
        public static bool GetIsSelectingOnPreviewMouseLeftButtonDown(ListBoxItem listBoxItem)
        {
            return (bool)listBoxItem.GetValue(IsSelectingOnPreviewMouseLeftButtonDownProperty);
        }

        /// <summary>
        /// Sets the is selecting on preview mouse left button down.
        /// </summary>
        /// <param name="listBoxItem">The list box item.</param>
        /// <param name="value">if set to <c>true</c> [value].</param>
        public static void SetIsSelectingOnPreviewMouseLeftButtonDown(
          ListBoxItem listBoxItem, bool value)
        {
            listBoxItem.SetValue(IsSelectingOnPreviewMouseLeftButtonDownProperty, value);
        }


        /// <summary>
        /// If the Property is set to true, the ListBoxItem is selected on ervery MouseLeftButtonDown inside the ListBoxItem.
        /// </summary>
        public static readonly DependencyProperty IsSelectingOnPreviewMouseLeftButtonDownProperty =
            DependencyProperty.RegisterAttached(
            "IsSelectingOnPreviewMouseLeftButtonDown",
            typeof(bool),
            typeof(ListBoxItemBehavior),
            new UIPropertyMetadata(false, OnIsSelectingOnPreviewMouseLeftButtonDownChanged));

        static void OnIsSelectingOnPreviewMouseLeftButtonDownChanged(
          DependencyObject depObj, DependencyPropertyChangedEventArgs e)
        {
            ListBoxItem item = depObj as ListBoxItem;
            if (item == null)
                return;

            if (e.NewValue is bool == false)
                return;

            if ((bool)e.NewValue)
                item.PreviewMouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(item_PreviewMouseLeftButtonDown);
            else
                item.PreviewMouseLeftButtonDown -= new System.Windows.Input.MouseButtonEventHandler(item_PreviewMouseLeftButtonDown);
        }

        static void item_PreviewMouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            DependencyObject sourceControl = e.OriginalSource as DependencyObject;

            try
            {
                if (sourceControl != null)
                {
                    ListBoxItem item = getAncestorListBoxItemOfDependencyObject(sourceControl);
                    item.IsSelected = true;
                }
            }
            catch
            {
                // No Parent-ListBoxItem found -> Do nothing
            }
        }

        private static ListBoxItem getAncestorListBoxItemOfDependencyObject(DependencyObject sourceControl)
        {
            if (VisualTreeHelper.GetParent(sourceControl) == null)
                throw new Exception("The Control is not inside of a ListBoxItem.");
            else if (VisualTreeHelper.GetParent(sourceControl) is ListBoxItem)
                return VisualTreeHelper.GetParent(sourceControl) as ListBoxItem;
            else
                return getAncestorListBoxItemOfDependencyObject(VisualTreeHelper.GetParent(sourceControl));
        }

        #endregion
    }

07.06.2010 - 09:49 Uhr

Hallo,

Ich habe eine ListBox in deren ItemsTemplate ich mehrere Controls (beispielsweise eine TextBox, eine ComboBox etc.) in einem Grid definiert habe. Nun möchte ich gerne, dass durch anklicken der TextBox, das zugehörige ListBoxItem selektiert wird. Wie kann ich das erreichen?

Vielen Dank im voraus!!

05.03.2010 - 10:36 Uhr

Hallo,

Ich habe gerade bei einer Anwendung die Situation, dass ich mehrere Styles/Templates definiert haben, die teilweise auf sich gegenseitig verweisen. Dabei ist mir aufgefallen, dass es scheinbar eine Rolle spielt, in welcher Reihenfolge die Styles definiert sind, weil ansonsten zur Laufzeit die Resourcen nicht gefunden werden und man eine Exception bekommt. Das hat mich schon etwas überrascht!
Nach einer Google-Suche habe ich seltsamerweise nichts zu dem Thema gefunden (vielleicht auch falsch gesucht). Habt ihr eine Idee, woran das liegt und wie ich das umgehen kann? Ich benötige letztendlich (beliebig tiefe) eine Verschachtelung von einem Style und einem (Item)Template. Bei einem TreeView würde ich das mit einem HierarchalDataTemplate lösen, aber mein Fall ist etwas komplexer. Bin euch für jeden Tip dankbar!!

Viele Grüße,

Marco

28.01.2010 - 12:03 Uhr

Hallo,

kann es sein, dass es in Silverlight nicht möglich ist, Properties in Styles zu binden? In WPF kann ich innerhalb eines Styles folgendes machen:

<Setter Property="IsSelected" Value="{Binding Path=IsNodeSelected, Mode=TwoWay}" />

In Silverlight führt das zur Laufzeit zu einer XamlParseException:

AG_E_RUNTIME_MANAGED_UNKNOWN_ERROR

Ist das normal? Mache ich was falsch?

28.01.2010 - 11:58 Uhr

Wenn du einen Breakpoint in den Setter von 'SelectedComponentItem' setzt, geht er da auch nicht rein? Hast du beim Binden von SelectedItem den SelectedValuePath und SelectedValue auch weggelassen? Also nur ItemSource und SelectedItem reinnehmen.

28.01.2010 - 09:57 Uhr

Hast du mal im Output-Fenster vom VisualStudio geguckt, ob es Binding-Probleme gab? Das ist in solchen Fällen sehr hilfreich.

28.01.2010 - 09:46 Uhr

ComponentItems ist auch eine Collection vom Typ "TcComponentItem" ?

28.01.2010 - 09:42 Uhr

Also ich mache das bei mir immer so:

SelectedItem="{Binding SelectedItem, Mode=TwoWay}"

und das funktioniert prima.

27.01.2010 - 13:39 Uhr

Als kleinen Hinweis:

Bei Codeplex gibt es eine ausführliche WPF-Anwendung zur Visualisierung von Stammbäumen:

Family.Show

27.01.2010 - 13:10 Uhr

Hallo,

ich habe in Silverlight einen TreeView, dessen Knoten ich mit einen einfachen Mausklick expanden will. Das ganze würde ich gerne möglichst nur im XAML lösen. Hat jemand eine Idee?

Vielen Dank im vorraus.

Gruß,

Marco

27.01.2010 - 12:37 Uhr

Hallo winSharp93,

danke für deine Antwort. Ich habe es jetzt doch mit einem HierarchicalDataTemplate hinbekommen. Ich wusste vorher nicht, das die nochmals einen ItemContainerStyle und einen ItemTemplate haben können. Damit funktioniert das jetzt prima!

26.01.2010 - 17:39 Uhr

Hallo,

ich benötige in meinem Silverlight-TreeView für die erste Knotenebene eine anderen Itemstyle als in den Ebenen darunter. Die Items werden über die ItemSource automatisch angelegt und die Lösung sollte rein Xaml-basiert sein, da ich das MVVM-Pattern verwende.

Ich habe schon einiges versucht (insbesonder den ItemContainerStyle angepasst), bin aber zu keiner zufriedenstellenden Lösung gekommen. Hat jemand von euch eine Idee?

Vielen Dank im vorraus!

Gruß, Marco

20.01.2010 - 12:55 Uhr

Hallo,

Im button1_Click Event solltest du nachdem die Werte gesetzt wurden PropertyChanged("Locked"); aufrufen.

P.S.: ich kenne den UpdateSourceTrigger nicht, vielleicht nimmt er dir das (normalerweise) ab??

20.01.2010 - 09:58 Uhr

Also mein TreeView sieht im einfachsten Fall so aus:


<TreeView ItemsSource="{Binding ArticleRootElements}" SelectedItem="{Binding SelectedArticleNode, Mode=TwoWay}">
   <TreeView.ItemTemplate >
      <HierarchicalDataTemplate ItemsSource="{Binding Children}">
         <TextBlock Text="{Binding Name}" FontWeight="Bold"/>
      </HierarchicalDataTemplate>
   </TreeView.ItemTemplate>
</TreeView>

Children ist eine Property der Knotenelemente, die eine Liste mit den Unterknoten darstellt. Funktioniert ganz wunderbar so.

20.01.2010 - 09:34 Uhr

Hallo,

das hab ich auch versucht, bin aber zu keinem vernünftigen Ergebnis gekommen. Wenn ich das ItemTemplate wiefolgt ändere, werden auch die Items im Popup mit TextBox angezeigt und bearbeiten kann ich die auch nicht:


<ComboBox Grid.Column="1" ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" VerticalAlignment="Center" Margin="0,2" ItemContainerStyle="{StaticResource ComboBoxItemStyleWithVisibility}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBox Text="{Binding Label}"/>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

Ich vermute, dass das ItemTemplate der falsche Ansatz ist, weil ja nur die eigentliche ComboBox (ausgewählte Element) editierbar sein soll und nicht die Elemente im Popup. Ich habe auch schon versucht den Style der ComboBox selber anzupassen, bin aber kläglich gescheitert.

19.01.2010 - 16:24 Uhr

Hallo,

ich benötige eine ComboBox, die auch eine Editiermöglichkeit anbietet. (DropDown statt DropDownList). Ist so etwas mit Silverlight-Hausmittel möglich (mit vertretbarem Aufwand)? Ich kenne von Telerik ein entsprechendes Control, aber das kann ich in meinem aktuellen Projekt nicht verwenden.

Vielen Dank im vorraus!

Grüße, Marco

18.01.2010 - 17:35 Uhr

Hallo,

ich möchte gerne in Silverlight die Sichbarkeit der Items in einer ComboBox an eine Eigenschaft des Items binden. Ich habe es mit einem ItemTemplate versucht, bin aber gescheitert:


<ComboBox Grid.Column="1" ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" VerticalAlignment="Center" Margin="0,2">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Label}" Visibility="{Binding Visibility}"/>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

In diesem Fall wird nur die Sichtbarkeit der TextBox beeinflusst. Die Items selber sind noch sichbar (wenn auch dünner). Hat jemand eine Idee, wie man es richtig machen müsste?

Vielen Dank im vorraus!

13.01.2010 - 15:59 Uhr

Also ich habe das bei mir so wie hier: http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx gelöst und das funktioniert prima!

13.01.2010 - 14:04 Uhr

Vielen Dank für deinen schnellen Post. Deine Lösung ist genauso genial wie einfach! Ohne deine Hilfe hätte ich wahrscheinlich ewig herumgewurschtelt.

12.01.2010 - 11:07 Uhr

Hallo meisteralex,

ich bin nach einer verzweifelten Suche nach einer Lösung zu einem Silverlight/MVVM-Problem auf deinen Beitrag "Silverlight: Dynamisches DataTemplate" gestoßen. Ich habe in letzter Zeit relativ viel mit MVVM und WPF gearbeitet und bin nun erstmals dabei, das in Silverlight umzusetzen. Du hast in deinem letzten Beitrag geschrieben, dass du den Code zu deiner Lösung posten könntest und ich denker, er würde mir sehr weiterhelfen.

Vielen Dank im vorraus!

Grüße, Marco

21.09.2009 - 14:34 Uhr

Ah, jetzt verstehe ich erst dein Problem. Dann ist es natürlich klar, dass er RechnungsDatum nicht findet. Wie wäre es, wenn du eine von GroupHeader abgeleitete Klasse verwendest, die eine oder mehrere zusätliche Label-Property hat? Die kannst du dann setzen wie du magst.

21.09.2009 - 14:18 Uhr

Hallo,

wenn das mit Name und ItemCount funktioniert, muss das auch mit RechnungsDatum, vorrausgesetzt, es ist wie Name und ItemCount in demItem vorhanden und auch eine Property (public; mit get und ggf. set)!

21.09.2009 - 14:14 Uhr

Hallo,

ich setze in einer Anwendung das MVVM Pattern ein und habe dabei auf der einen Seite ein Treeview und auf der anderen ein ContentControl, in dem je nach Typ des ausgewählten Knotens ein passendes Control anzeige. Realisiert habe ich das so, dass ich den Content des ContentControl auf eine ViewModel-Basisklasse gebunden habe und in Abhängigkeit des Knotentyps den entsprechenden ViewModel instanziiere.

Zusätlich habe ich in der View ein DataTemplate, dass die View weiß, wie sie die entsprechnden ViewModels darstellen soll:


<DataTemplate DataType="{x:Type viewmodel:MyViewModel}">
     <view:MyView/>
</DataTemplate>

Das funktioniert auch alles prima! Wenn ich jetzt aber nacheinander zwei Knoten des gleichen Typs habe, wird bei beiden die gleiche View verwendet und "nur" die Daten der unterschiedlichen ViewModels angezeigt. Dies hat zur Folge, das bestimmte Dinge sich "gemerkt" werden (beispielsweise welcher der ausgewählte Tab in einem TabControl war). Viel schlimmer ist noch, dass an einer Stelle mein Binding nicht aktualisiert wird und entsprechend nicht mehr funktioniert. Wenn ich zwischendurch einen Knoten von einen anderen Typ habe (also auch andere View) funktioniert alles wie geplant.

Gibt es eine MVVM-konforme Möglichkeit zu erzwingen, dass die View neu geladen wird?

14.09.2009 - 11:17 Uhr

Hallo,

nachdem ich an dem Ausblenden von Spalten in einem ListView gescheitert bin, versuche ich jetzt die Spalten eines DataGrid per Binding auszublenden. Leider gelingt mir das auch nicht. Die Column hat zwar eine Visibility-Eigenschaft, bei der funktioniert aber das Binding nicht!!! Nach langer Suche habe ich folgendes festgestellt:

Im Output-Fenster vom Visual Studio erscheint beim Laden der Anwendung folgender Fehler:

"System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpression:Path=DefectColumns.ShowColumnDefectNumber; DataItem=null; target element is 'DataGridTextColumn' (HashCode=58961324); target property is 'Visibility' (type 'Visibility')"

Ich habe irgendwo im Internet gelesen, das das Stylen einer Column per Binding nicht möglich ist, weil eine Column kein Framework-Element ist. Das kommt mir aber sehr seltsam vor!! Hat jemand von euch eine Idee?

Achja: das Problem tritt sowohl beim DataGrid aus dem Toolkit als auch beim DataGrid von Xceed auf.

11.09.2009 - 13:22 Uhr

Danke für deine Antwort. Das Problem an der Breite ist, das man die mit der Maus wieder ändern kann, wenn man an den Rand klickt.... ListView wäre schon schön, weil ich einige Sachen dafür schon implementiert habe.

11.09.2009 - 12:08 Uhr

Ach so: Ja ich will die ganze Spalte ausblenden.

11.09.2009 - 12:07 Uhr

Aber unter "GridView.Columns" definiert man doch auch eine Auflistung von "GridViewColumn", oder? Und die haben keine Visibility-Eigenschaft. Zumindest nicht bei mir 😦

11.09.2009 - 11:12 Uhr

Hallo,

ich habe ein ListView mit mehreren Spalten, deren Inhalt ich per Binding fülle. Vereinfacht dargestellt sieht das so aus:


<ListView ItemsSource="{Binding MyItems}">
    <ListView.View>
        <GridView>
           
            <GridViewColumn>
               <GridViewColumnHeader>
                        <TextBlock Text="Spalte 1"></TextBlock>
                </GridViewColumnHeader>
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                       <TextBlock Text="{Binding ContentColumn1}"/>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
                 
        </GridView>
    </ListView.View>
</ListView>

Nun möchte ich per Binding bestimmte Spalten ausblenden. Wie geht das? Ein GridViewColumn hat keine Visibility Eigenschaft. Ich kann nur den Header und die Textbox einzeln ausblenden, dann wird aber nicht die ganze Spalte ausgeblendet. Die Breite des GridViewColumn auf 0 setzen geht auch nicht, da man mit der Maus diese wieder ändern kann. Hat einer eine Idee? Ich versuche das jetzt schon seit Stunden...

07.07.2009 - 14:35 Uhr

Ich habe im Netz an zahlreichen Stellen gelesen, dass in der Query keine Konstruktor für eine Entity-Klasse aufgerufen werden darf. Daher wohl die Exception.

Nun könnte man das prinzipiell so machen:

... select new { projekt, ProjektName = projektName.Text };

und dann

var query2 = query.ToList().ConvertAll<Projekt>(p => new Projekt() { ID = p.projekt.ID, ProjektName = p.ProjektName, Projektleiter = p.projekt.Projektleiter });

Das funktioniert auch prima. Allerdings muss ich dabei ja alle Eigenschaften von Projekt auflisten und kann schnell unübersichtlich werden.

Kann man auch sowas machen:

var query = queryTemp.ToList().ConvertAll<Projekt>(p => p.projekt);

und dann in der Klammer auch noch die Zuweisung für den Projektnamen unterbringen?

Sorry für die nervigen Fragen, aber ich arbeite noch nicht lange mit LINQ.

07.07.2009 - 13:32 Uhr

Danke für die schnelle Antwort. Das habe ich auch schon probiert, ich bekomme dann aber bei query.ToList() eine NotSupportedException:

The entity or complex type 'TestModel.Projekt' cannot be constructed in a LINQ to Entities query.

Muss ich noch etwas anpassen?

07.07.2009 - 13:02 Uhr

verwendetes Datenbanksystem: <SQL Server und LINQ to Entity>

Hallo,

ich habe eine Frage zu einem JOIN mit LINQ to Entity. Ich kann sie am Besten in einem Beispiel beschreiben:

ich habe eine Tabelle mit Projekten (ID, Text-ID, Projektleiter) und eine Tabelle mit mehrsprachigen Texten (Text-ID, Sprachkürzel, Text). In der Texttabelle sind die Text-ID und das Sprachkürzel der Primärschlüssel. Einen Fremdschlüssel kann ich zwischen den Tabellen nicht anlegen, da es zu jedem Projekt mehrere Texte gibt (für jede Sprache einen).

Ich möchte in der Anwendung ein Objekt vom Typ Projekt haben, der den Projektnamen in der aktuellen Sprache beinhaltet.

Ein Ansatz ist der:


var query = from projekt in context.Projekt
        join projektName in context.Text on projekt.TextID equals projektName.TextID

        where projektName.Localization == "de-DE"

        select new { ProjektID = projekt.ID, Projektleiter = projekt.Projektleiter, ProjektName = projektName.Text };

Das Ergebnis ist das, was ich haben will, aber leider nicht vom Typ Projekt, sondern von einen anonymen Typ. Gibt es eine Möglichkeit, dass ich ein Ergebnis vom Typ Projekt kriege? Ich kann ja die Klasse Projekt mit einer partial Class um die Eigenschaft Projektname erweitern.

Danke im Vorraus!

17.03.2009 - 14:07 Uhr

Danke für die schnelle Antwort!

Was macht das Merge genau? Werden die Zeilen kopiert/geclont, oder nur referenziert (was mir eigentlich lieber wäre)? Wie performant ist das ganze?

17.03.2009 - 13:49 Uhr

verwendetes Datenbanksystem: DataTable

Hallo,

ich habe eine DataTable in einer Klasse und möchte in einer anderen Klasse (die die DataTable nicht kennt) neue Zeilen erzeugen (weil Daten übers Netzwerk eingegangen sind). Meine Überlegung ist, das die Netzwerkklasse ein Liste mit DataRows füllt und die Liste dann der anderen Klasse mit einem Event übergibt. Mein Problem ist jetzt, wie erzeuge ich am Besten die DataRows, so dass ich sie dann noch in die DataTable einfügen kann? Ich habe versucht in der Netzwerkklasse eine DataTable mit gleicher Struktur zu erzeugen und die DataRows mit NewRow anzulegen. Allerdings kann ich die DataRow weder der Ziel-DataTable weder mir Add (Fehlermeldung, das die Zeile schon einer anderen Tabelle gehört, obwohl die andere Tabelle gar keine Zeilen hat) noch mit ImportRow (Zeilen werden einfach nicht hinzugefügt) hinzufügen.

Was habe ich für Alternativen?

Gruß, Marco

16.03.2009 - 12:36 Uhr

Zeigt er dir, wenn du mit der rechten Maustaste auf das AppendLine gehst ein Resolve an?

16.03.2009 - 12:01 Uhr

Sind auch die DLLs der richtigen Version referenziert? Also die 3.5er?

16.03.2009 - 08:59 Uhr

Du musst/kannst das so anwenden:

RegistryKey HKLM = Registry.LocalMachine.OpenSubKey("NAME DES EINTRAGS");

Setzen kannst du Werte z.B. so:

Registry.LocalMachine.SetValue("NAME DES EINTRAGS", 123);
13.03.2009 - 09:55 Uhr

Kannst du nicht einfach beide Sachen in einer Anfrage/Select anfragen? GGF. halt einen JOIN oder eine UNION verwenden, je nach Kontext.

13.03.2009 - 09:07 Uhr

Danke, das sieht sehr gut aus! Werde das sobald ich wieder an meine DB komme testen.

13.03.2009 - 08:37 Uhr

Danke für die Antwort, ich konnte leider nicht eher zurückschreiben.

Mein Problem ist nicht, dass ich nicht weiß, wie man allgemein Daten abfragt und in ein DataTable/DataSet packt! Meine SP liest Daten aus, verarbeitet die und schreibt die Ergebnisse mit Hilfe von SqlContext.Pipe.SendResultsRow in die Pipe. Beim Ausführen der SP im Management Studio sehe ich das Ergebnis auch in Tabellenform. Ich weiß jetzt nur nicht, wie ich diese Ergebnisse beispielsweise mit einer SQL Anfrage anfragen soll! Also vom Prinzip her so:

SELECT *
FROM EXEC mySP
WHERE MyID = 4711;

Nur, dass das halt so nicht geht! Wie macht man sowas? Mit einer temporären Tabelle oder so was?

11.03.2009 - 23:54 Uhr

verwendetes Datenbanksystem: SQL Server 2005

Hallo,

ich habe eine CLRStored Procedure geschrieben, die diverse Dinge abfragt und berechnet und die Ergebnisse mit Hilfe von SqlContext.Pipe.SendResultsRow in die Pipe schreibt. Das funktiniert auch alles wunderbar: Wenn ich im Management Studio die SP mit EXEC aufrufe, erhalte ich im Ausgabebereich eine Tabelle mit meiner Ausgabe.

Meine Frage ist jetzt: Wie kann ich diese Tabelle weiterverwenden; bspw. in einer SQL-Abfrage?

Danke im Vorraus!

04.03.2009 - 14:58 Uhr

Funktioniert es wenn du statt "(string)kvp.Value" "kvp.Value.ToString()" verwendest?

Das gleiche natürlich auch für "Value"

03.03.2009 - 14:37 Uhr

Also ich das auch grad mal ausprobiert:
Neues Winform erstellt, TabControl eingefügt und auf Fill gestellt, DPI EInstellung auf 120 umgestellt, Rechner neu gestartet, Programm gestartet und alles ist normal! Ich kann die Größe und Seitenverhältnis ändern und das Fenster maximieren. Das TabControl füllt das Form immer aus.

03.03.2009 - 11:53 Uhr

Dann würde ich Container (TableLayoutPanel o.ä.) einsetzen. Das TabControl ist selber ja auch ein Container und daher ist es möglich (ich habs jetzt nicht getestet) das es sich beim Anchor anders verhält.

03.03.2009 - 11:27 Uhr

Wenn ich dich richtig verstanden habe, dann solltest du die Dock-Eigenschaft auf fill setzen.

03.03.2009 - 11:03 Uhr

Ist es Teil der Aufgabe, den Aufbau selber im Code zu machen? Das meiste kannst du viel einfacher und bequemer im Designer machen!

03.03.2009 - 10:03 Uhr

Vielleicht einfach ein Control drüberlegen, das einen transparenten Hintergund und das Kreuz hat.

03.03.2009 - 09:03 Uhr

Ich denke, dass die Obeflächengestaltung gemeint war, weil dodo502b ja auch ein Vergeleich zu VS angestrebt hat.

Ich verstehe seine Aufregung auch nicht! Man kann mit WindowsForms schon extrem viel und sehr einfach machen. Mit WPF kann man sich fast uneingeschränkt austoben. Der Designer im VS lässt zwar noch etwas zu wünschen übrig aber mit Blend ist das schon ganz cool!!