Laden...
Avatar #avatar-2980.jpg
Taladan myCSharp.de - Member
Individualprogrammierer sowie Student Osnabrück Dabei seit 06.04.2008 582 Beiträge
Benutzerbeschreibung

Forenbeiträge von Taladan Ingesamt 582 Beiträge

12.05.2008 - 21:29 Uhr

Hallo,

ich hatte mal eine XML Datei im Programm eingebunden. Diese gab Hilfestellung (per IntelliSence) bei der manuellen Eingabe von XML Daten. Doch weiß ich nicht mehr wie ich das gemacht habe.

Weiß jemand, wie ich der XML Datei sage, nach welchen Schema die Daten eingegeben sind?

Gruß Tala

06.05.2008 - 21:01 Uhr

Dazu muss man den Style der TabControl veraendern. Ich habe kurz ein Beispiel erstellt, indem eine TabControl einen Button mit dem Content "X" erhaelt. Dieser Button befindet sich durch die Width-Angaben im Grid ("*" und "Auto") ganz rechts aussen:

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="TabControlTest.Window1"
x:Name="Window"
Title="Window1"
Width="640" Height="480">

<Window.Resources>
<SolidColorBrush x:Key="TabControlNormalBorderBrush" Color="#919B9C"/>
<LinearGradientBrush x:Key="TabControlPaneTopNormalBackground" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFFCFCFE" Offset="0"/>
<GradientStop Color="#FFF4F3EE" Offset="1"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="TabControlPaneBottomNormalBackground" EndPoint="0,0" StartPoint="0,1">
<GradientStop Color="#FFFCFCFE" Offset="0"/>
<GradientStop Color="#FFF4F3EE" Offset="1"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="TabControlPaneLeftNormalBackground" EndPoint="1,0" StartPoint="0,0">
<GradientStop Color="#FFFCFCFE" Offset="0"/>
<GradientStop Color="#FFF4F3EE" Offset="1"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="TabControlPaneRightNormalBackground" EndPoint="0,0" StartPoint="1,0">
<GradientStop Color="#FFFCFCFE" Offset="0"/>
<GradientStop Color="#FFF4F3EE" Offset="1"/>
</LinearGradientBrush>
<Style x:Key="TabControlStyle1" TargetType="{x:Type TabControl}">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="Padding" Value="4,4,4,4"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="{StaticResource TabControlNormalBorderBrush}"/>
<Setter Property="Background" Value="{StaticResource TabControlPaneTopNormalBackground}"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabControl}">
<Grid ClipToBounds="true" SnapsToDevicePixels="true" KeyboardNavigation.TabNavigation="Local">
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="ColumnDefinition0"/>
<ColumnDefinition x:Name="ColumnDefinition1" Width="0"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition x:Name="RowDefinition0" Height="Auto"/>
<RowDefinition x:Name="RowDefinition1" Height="*"/>
</Grid.RowDefinitions>
:::

<Grid x:Name="LayoutRoot">
<TabControl Margin="28,40,34,52" Style="{DynamicResource TabControlStyle1}" IsSynchronizedWithCurrentItem="True">
<TabItem Header="TabItem">
<Grid/>
</TabItem>
<TabItem Header="TabItem">
<Grid/>
</TabItem>
</TabControl>
</Grid>
</Window>

Danke dir, das wollte ich. Auch wenn ich noch nicht genau weiß, was du da alles tust, klappt es. So nu guck ich mal, was du da mit den Code alles machst 👅

05.05.2008 - 23:04 Uhr

Wie kann man das Tabcontrol so verändern, das man wie bei Visusal 2008 neben den TabHeadern rechts zwei Button hat (in Visual 2008 der Button mit den Contextmenu mit allen Tabs und des CloseButton). Ich finde keine entsprechnede Eigenschaft.

04.05.2008 - 14:59 Uhr

Auch mit diesen Beispiel komme ich nicht weiter 😦. Effekt ist immer noch der gleiche.

04.05.2008 - 02:58 Uhr

Ohne Itemtemplate kann ich nicht für Header, Tooltip usw seperate Eigenschaften setzen. Textbox ist auch keine lösung, da ich nicht das MenuItem selbst modifiziere, sondern seinen Inhalt.

Das Problem an diesen Code:Bindung/Template scheint mir, das es nicht das Element, sondern seinen Content modifiziert. Ergo packt er in ein erzeugtes MenuItem ein neues MenuItem hinein. Aber ich finde nirgends eine Lösung, wie man den Kontent direkt modifizieren kann.

03.05.2008 - 20:03 Uhr

Hier das Problem. Es wird ein MenuItem INNERHALB eines Menuitems erzeugt, dabei möchtei ch einfach nur den Menuitems die werte an der richten stelle zu ordnen.

03.05.2008 - 19:49 Uhr

Ich möchte gern über eine Datenbindung mein Menu erzeugen. So weit, funktioniert das auch, aber leider wo wie ich bis jetzt mache, packt er mir ein MenuItem in ein MenuItem


                <MenuItem Header="Tools" Click="TestClick" ItemTemplate="{StaticResource MenuItems}" >
                    <MenuItem.ItemsSource>
                        <Binding Source="{StaticResource Tools}"  XPath="tools/tool[@Type='Admin']" />
                        
                    </MenuItem.ItemsSource>
                </MenuItem>


Recource


        <DataTemplate x:Key="MenuItems" DataType="x:MenuItem">
            <MenuItem Header="{Binding XPath=@Name}" ToolTip="{Binding XPath=@Tooltip}"/>
        </DataTemplate>

01.05.2008 - 14:15 Uhr

Eigendlich sollte es doch ganz einfach sein, aber ich komme nicht drauf.

Wie kann ich u.g. Binden, so das nicht im jeden Item "@Seite" bzw "@Description" abgelegt wird, sondern die Werte aus der Datenbindung?


            <MenuItem Header="Spieler" DisplayMemberPath="@Name" ToolTip="@Description" Tag="@Seite" Click="ToolClick" >
                <MenuItem.ItemsSource>
                    <Binding Source="{StaticResource Tools}"  XPath="tools/tool[@Type='Spieler']" />
                    
                </MenuItem.ItemsSource>
            </MenuItem>

01.05.2008 - 14:12 Uhr

Möglichkeit gefunden:

ContentFrame.Navigate(new Uri("Pages/Page2.xaml", UriKind.Relative));

01.05.2008 - 13:00 Uhr

Hallo,

per WPF ist das ja Simpel


<Frame Name="ContentFrame" Source="Pages/Page1.xaml" NavigationUIVisibility="Hidden"/>

Doch wie kann ich dies Source per C# setzen? Ich finde nirgends einen weg, wie man das machen kann. Zu einer Internetseite zu Navigieren wird über gezeigt, aber wie kann ich genau den Code oben nachbilden?

01.05.2008 - 12:20 Uhr

Fehler gefunden. Der Fehler lag nicht in der XML sondern in der CodeDatei.

01.05.2008 - 12:17 Uhr

Hallo,

ich generiere mein Menu aus einer XML Datei. Das funktioniert jetzt auch gut, aber ich kann kein Click-Event hinzufügen. Was natürlich sehr unschön ist.


            <Menu DockPanel.Dock="Top" Height="22" Name="Menu1" VerticalAlignment="Top" >
                <MenuItem Header="Spieler" DisplayMemberPath="@Name" Tag="@Seite" ToolTip="@Description">
                    <MenuItem.ItemsSource>
                        <Binding Source="{StaticResource Tools}"  XPath="tools/tool[@Type='Spieler']" />
                    </MenuItem.ItemsSource>
                </MenuItem>
        </Menu>

Wenn ich diesen Menuitem ein ClickEvent hinzufügen möchte, dann kommt diese Fehlermeldung

Zum Generieren eines Ereignishandlers muss die Hauptfenster-Klasse, die mit dem x:Class-Attribut oder x:Subclass-Attribut angeben wird, die erste Klasse in der Datei sein. Verschieben sie den Klassencode an die ersten Position in der Datei, und wiederholen sie den Vorgang.

(Ja und der Gramatikfehler ist auch so drin).

01.05.2008 - 11:12 Uhr

Danke. Genau das Fehlte mir. Ich habe die "Vorauswahl" in der Onlinehilfe nicht gefunden.

27.04.2008 - 22:57 Uhr

Hallo, ich möchte gern mein Menu aus einer XML Datei heraus erzeugen. Klappt schon, aber da ich das Menu "gestaffelt" aufbauen will, also MenuItems innerhalb von "adim", "user", "moderator" erstellen will.
Dafür ist wohl die DatenValidierung da. Doch diese wird scheinbar gar nicht angesprochen
Geprüft werden soll der der wert Type. In diesen falle soll er den ausdruck Admin haben. Das Menuitem soll den Namen Name tragen (klappt alles so weit, aber es wird einfach keine Validierung durchgeführt. Warum nicht?


            <MenuItem Header="Admin" Name="Tools" DisplayMemberPath="@Name">
                <MenuItem.ItemsSource>
                    <Binding Source="{StaticResource tools}" XPath="tools/tool">
                        <Binding.ValidationRules>
                            <local:TypeRule Type="@Type" mustBe="admin" />
                        </Binding.ValidationRules>
                    </Binding>
                </MenuItem.ItemsSource>
            </MenuItem>

26.04.2008 - 17:37 Uhr

Wenn ich mein DataTable über GetChanges abrufe, und KEINE Änderung vorliegt, erhalte ich immer die Fehlermeldung, das der Objectverweis nicht auf eine Instanz liegt. Wie kann ich das verhindern?


                    DataTable ChangeTable = new DataTable();
                    ChangeTable = Datenbank.Tagebuch.GetChanges();
                    MessageBox.Show(ChangeTable.Rows.Count.ToString());

Eigendlich möchte ich nur feststellen ob speziell in dieser Tabelle Änderungen vorliegen? (das DataSet beinhaltet weitere, die aber nicht überprüft werden sollen).

25.04.2008 - 22:57 Uhr

Hallo, ich glaub ich bin zu verwöhnt von Windows-Forms...

In den Forms gab es ja die Möglichkeit, zu überprüfen ob ein Fenster geschlossen wird. Closed-Ereignis. Dies ist vor allem bei MDI´s ideal, um noch den Nutzer eine letzte Chance zu geben, nicht gespeicherte Daten ab zu speichern.

In WPF gibt es kein MDI mehr. Ich nutze statt dessen jetzt ein TabControl um die verschiednen Fenster zu simulieren und darin UserControls um den Code zu trennen und wiederverwertbar zu halten.

Mein Problem ist nun, das ich in meinen "Fenstern" UserControls Datenbindungen an Datentabellen habe.

  1. Wie kann ich nun am geschicktesten Feststellen, ob Daten im DataSet geändert wurden (ich habe früher immer selbst Flags gesetzt, das ist aber schätzungsweise nicht nötig, aber eine andere vorgehensweise kenne ich nicht).
  2. Welches Event kann ich für eine solche Sicherheitsabfrage am besten benutzen? Wichtig ist mir, das es mit dieser Instanz des UserControls zu tun hat.

Gruß Marco

24.04.2008 - 17:18 Uhr

Und wie gebe ich nun ein Modul in C# an?
Und wofür steht IL 🤔?

24.04.2008 - 11:44 Uhr

Es ist richtig. Das ist Code von VB.Net. Mir fehlt einfach die typisierungsbefehl. In VB.Net hat man eben jene "Klasse" mit Modul eingeleitet. Wie kann ich das in C# machen. Immerhin muß dies möglich sein, da ja auch verschiedene Namespaces Funktionen zur verfügung stellen, die nicht an eine Klasse gekoppelt sind bzw über diese Aufgerufen werden.

23.04.2008 - 22:28 Uhr

Das geht zwar schon in die richtige Richtung, aber richtig ist es noch nicht. Denn ich kann so z.B. keine Prozeduren aufrufen ohne wieder eine Klasse anlegen zu müssen.

Beispiel ausn VB


Public Module thisModule
    Dim Public mySet As DataSet = New DataSet;
    Sub Main()
        Dim userName As String = "Franz"
        MsgBox("Dein Name ist " & userName)
    End Sub
End Module


???
   DataSet mySet = new DataSet();
   public void Main()
   {
            string userName = "Franz";
            MessageBox.Show("Dein Name ist " + userName);
   }

???

Egal wo ich nun im Code arbeite (in VB sogar ohne Einbindung per Imports/Using) kann ich nun sowohl auf die Klasse MySet zugreifen, wie auch auf die Prozeudure Main

23.04.2008 - 22:09 Uhr

Kurze Frage für die die auch VB kennen:
In VB gibt es Module. Gibt es die auch in C#?

Langfassung:
Ich möchte gern eine reihe von Objecten definieren, die in alle fast Fenster eingebunden werden. Diese gehen von einfachen Strings mit einen Dateipfad bis hin zu einem DataSet, seiner initialisierung und einlesen der Daten.
Diese sollen über das Hauptfenster einfach initialisiert werden und dann überall in den Projektdateien verfügbar sein, ohne das ich dazu eigene Instanzen bespielsweise einer Klasse erstellen muß. Dies hätte dann zur folge, das ich es z.b. wieder mit zwei DataSets in unterschiedlichen Instanzen zu tun habe (was ich absolut vermeiden will).

20.04.2008 - 17:00 Uhr

Danke. Das hatte ich auch gerade entdeckt, aber geht das nicht auch aus WPF heraus? Das wäre mir am liebsten?

20.04.2008 - 16:55 Uhr

Sorry. Ich stehe gerade total auf dem Schlauch (datenbankenanbindungen waren mir schon immer ein graus).

Ich habe die Datenbank über die IDE erzeugt. Hier Tabellen eingefügt (z.b. Meistertagebuch). Diese mit Felder belegt wie Begin, Ende, Titel.
Sowie ein paar SubTabellen (bisher ohne Relation).
Dann habe ich die IDE das Dataset erzeugen lassen.

Aber wie gehts nun weiter?

Aber welche befehle brauche ich zwischen
InitializeComponent();

und
BindingOperations.SetBinding(tbBeginn, TextBox.TextProperty, myBinding);

??? Da hänge ich momenten

20.04.2008 - 16:42 Uhr

Visual C# Express.

20.04.2008 - 16:34 Uhr

verwendetes Datenbanksystem: Microsoft SQL Server Compact 3.5 (.NET Framework-Datenanbieter für Microsoft SQL Server Compact 3.5)

Hallo,

ich bin neu in C# und WPF. Irgendwie schaffe ich es nicht, eine Simple verbing zu einer Datenbank mit meiner Application her zu stellen und eine Texteigenschaft meines WPF-Fensters daran zu binden.

Wie muß ich da am besten vorgehen?

Gruß Marco

15.04.2008 - 12:32 Uhr

Ich habe schon eine Probe mit einen eigenen Control (Benutzersteuerelement) gemacht. Aber irgendwo meine ich, gelesen oder gehört zu haben, das Benutzersteuerelemente nicht WPF-Like sind.

10.04.2008 - 21:04 Uhr

Habs in c# Express 2008 geladen und es gibt ein paar dutzend fehlermedlungen. Ich bin noch nicht fit genug, die zu beseitigen 😦.

10.04.2008 - 10:21 Uhr

Hallo,

irgendwie fehlt der in WPF, kann das sein? Wie kann man den schnellstmöglich nachbilden?

Gruß Marco

07.04.2008 - 12:43 Uhr

Hallo Experten,

ich möchte gern meinen Code übersichtlich halten, und einzelne Tabpages mit samt Design in eigene Dateien packen.

Ist es richtig, das ich dafür als Basis die Komponentenarte "Page" verwende? Wie kann ich diese dann dem Tabpage zu ordnen (mit dahinterliegenden Code, Prozeduren usw.).

Gehabt euch wohl...

07.04.2008 - 12:19 Uhr

ok. Hab mir was passendes ausgedacht. Ich werde meine Frage umformulieren. kannst diesen Thread dicht machen 😉

06.04.2008 - 22:54 Uhr

Auch das ist schwer. Am besten umschreibe ich es. Es ist eine ansammlung von Tools die sich alle irgendwie um einen gemeinsammen nenner drehen. So greifen zwischen A und B die z.B. Datenbanken mehrfach inneinander, und zwischen A und C gibt es noch nicht mal einen gemeinsamen nenner, wärend sich D wieder mit allem in verdinung setzt usw. Naja. Ich habe das selbe System schonmal verwendet und als Win32 Anwendung unter Delphi geschrieben. Halt als MDI.
Vor allem finde ich es sehr geschickt, das jedes "Fenster/Tool" in einer eigenen Datei liegt und der Code somit übersichtlich bleibt. Ich möchte weder groß wie bei PHP mit Includings/Module arbeiten noch alles in einen gigantischen Fenster-Code (TabControls) rein packen.
Nur um mal ne Dimension zu nennen, das alte Programm hat weit über 100.000 Zeilen Code ohne die Designbeschreibungen., besteht aus ca. 80 MDI-Fenster und ca 5 dutzend Modulen, zwei dutzend eigene Klassen usw.

06.04.2008 - 20:08 Uhr

Hallo herbivore...
wie nutzt man dann eine Anwendung die über mehrere Fenster gehen. Tabcontrols? Da diese Anwendung die ich vor habe, mit mehreren offenen Fenstern arbeiten muß, die auch gut in das dreckige Dutzend gehen kann.

06.04.2008 - 19:00 Uhr

Hallo,

ich bin sowohl neu in C# als auch im WPF. Was mich ein wenig reizt ist, das scheinbar kein MDI innerhalb von WPF möglich ist. Was nutzt man statt dessen? Jedes fenster extra aufploppen lassen finde ich extrem unproffessionell.

Gruß