Support, Anregungen, Wünsche zur Tutorialreihe <WPF lernen/>

  • WPF

Es gibt 84 Antworten in diesem Thema. Der letzte Beitrag () ist von 12roraru.

    Du machst dein Beispiel zeilenweise(das ist mir klar) - meines ist aber spaltenweise dargestellt...
    In der selben Zeile habe ich 7 Tage (Gruppen[Mo - So]), die ich dann spaltenweise zusammengefasst darstellen möchte...
    Je Tag sind 3 verschiedene Eigenschaften, die in der Gruppe angezeigt werden...

    Zeile: Gruppe: Tag1(Name1, Zyklus1, Detail1), Gruppe: Tag2(Name2, Zyklus2, Detail2), ... , Gruppe: Tag7(Name7, Zyklus7, Detail7)

    Diese Daten befinden sich in einer Tabelle:
    ID, Name1, Zyklus1, Detail1, Name2, Zyklus2, Detail2, ... , Name7, Zyklus7, Detail7

    Verstehst du, was ich meine?
    Wie weise ich die Daten den Gruppen zu?
    Daher habe ich diese Extraklasse mit den Dependency-Properties zwischengestellt...
    Hallo

    Das ist mir soweit klar. Jedoch hat das eine mit dem anderen nichts zu tun. Bei dir ist die Marke ein Tag
    Am besten du machst hierfür einen neuen Thread im WPF Bereich auf. Denn.....

    Ich denke jetzt schon das das DataGrid die falsche herangehensweise ist. Bitte nicht so sehr an WinFroms denken wo man nicht ganz so viele möglichkeiten hatte wie in der Welt der WPF.
    Ich würde dein "Problem" vermutlich (wenn ich es richtig verstanden habe) mit einem UniformGrid machen.

    Aber. Mach doch schnell mal einen Thread auf. Mach vieleicht eine Skizze wie du es dir vorstellst und lass hier ruig deine Fantasie spielen. In der WPF kann man sehr viel machen.
    Falls du bereits eine Datenklasse hast poste diese und wir gehen alles langsam durch so das es für dich passt. Das bekommen wir schon hin. Da musst du jetzt nicht auf das Tutorial warten.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nofear23m“ ()

    Hy Sascha,
    ich befasse mich auch gerade einwenig mit WPFund ich van dein Video Tutorial sehr gut und verständlich!
    Ich habe jetzt auch schon einiges ausprobiert. So weit funktioniert das auch gut.
    Ich habe aber das Problem das mir in einem ItemTemplate für die TextBox Event.triggers ausgeführt werden.
    anbei mal ein Beispiel.

    XML-Quellcode

    1. ​<Style x:Key="OrdnerList" TargetType="{x:Type ListView}">
    2. <Style.Resources>
    3. <SolidColorBrush x:Key="Background" Color="AntiqueWhite" />
    4. <SolidColorBrush x:Key="Foreground" Color="Black"/>
    5. <SolidColorBrush x:Key="Fill" Color="AliceBlue"/>
    6. </Style.Resources>
    7. <Setter Property="Template">
    8. <Setter.Value>
    9. <ControlTemplate>
    10. <Border BorderThickness="2" BorderBrush="Black" Background="{StaticResource Background}" Margin="5,2.5,5,2.5" HorizontalAlignment="Stretch">
    11. <Grid>
    12. <Grid.RowDefinitions>
    13. <RowDefinition Height="auto"/>
    14. <RowDefinition Height="1*"/>
    15. </Grid.RowDefinitions>
    16. <ItemsPresenter Grid.Row="1"/>
    17. </Grid>
    18. </Border>
    19. </ControlTemplate>
    20. </Setter.Value>
    21. </Setter>
    22. <Setter Property="ItemTemplate" >
    23. <Setter.Value>
    24. <DataTemplate>
    25. <Border BorderThickness="2" BorderBrush="Black" Margin="5,2.5,5,2.5">
    26. <Grid>
    27. <Grid.ColumnDefinitions>
    28. <ColumnDefinition Width="1*"/>
    29. <ColumnDefinition Width="1*"/>
    30. <ColumnDefinition Width="1*"/>
    31. </Grid.ColumnDefinitions>
    32. <Grid.RowDefinitions>
    33. <RowDefinition Height="Auto" />
    34. <RowDefinition Height="1*"/>
    35. </Grid.RowDefinitions>
    36. <Label Content="Path" Grid.Row="0"/>
    37. <Label HorizontalAlignment="Center" Content="Dummydatei" Grid.Column="1" Grid.Row="0"/>
    38. <Style x:Key="OrdnerList" TargetType="{x:Type ListView}">
    39. <Style.Resources>
    40. <SolidColorBrush x:Key="Background" Color="AntiqueWhite" />
    41. <SolidColorBrush x:Key="Foreground" Color="Black"/>
    42. <SolidColorBrush x:Key="Fill" Color="AliceBlue"/>
    43. </Style.Resources>
    44. <Setter Property="Template">
    45. <Setter.Value>
    46. <ControlTemplate>
    47. <Border BorderThickness="2" BorderBrush="Black" Background="{StaticResource Background}" Margin="5,2.5,5,2.5" HorizontalAlignment="Stretch">
    48. <Grid>
    49. <Grid.RowDefinitions>
    50. <RowDefinition Height="auto"/>
    51. <RowDefinition Height="1*"/>
    52. </Grid.RowDefinitions>
    53. <ItemsPresenter Grid.Row="1"/>
    54. </Grid>
    55. </Border>
    56. </ControlTemplate>
    57. </Setter.Value>
    58. </Setter>
    59. <Setter Property="ItemTemplate" >
    60. <Setter.Value>
    61. <DataTemplate>
    62. <Border BorderThickness="2" BorderBrush="Black" Margin="5,2.5,5,2.5">
    63. <Grid>
    64. <Grid.ColumnDefinitions>
    65. <ColumnDefinition Width="1*"/>
    66. <ColumnDefinition Width="1*"/>
    67. <ColumnDefinition Width="1*"/>
    68. </Grid.ColumnDefinitions>
    69. <Grid.RowDefinitions>
    70. <RowDefinition Height="Auto" />
    71. <RowDefinition Height="1*"/>
    72. </Grid.RowDefinitions>
    73. <Label Content="Path" Grid.Row="0"/>
    74. <Label HorizontalAlignment="Center" Content="Dummydatei" Grid.Column="1" Grid.Row="0"/>
    75. <Label HorizontalAlignment="Center" Content="HiddenFolder" Grid.Column="2" Grid.Row="0"/>
    76. <TextBox Text="{Binding Path=Ordnername, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, NotifyOnSourceUpdated=True}" Margin="0,0,5,0" Grid.Row="1" >
    77. <TextBox.Resources>
    78. <Style TargetType="{x:Type TextBox}">
    79. <Setter Property="Validation.ErrorTemplate"
    80. Value="{StaticResource GlobalErrorTemplate}" />
    81. <Style.Triggers>
    82. <Trigger Property="Validation.HasError"
    83. Value="True">
    84. <Setter Property="ToolTip"
    85. Value="{Binding (Validation.Errors)[0].ErrorContent, RelativeSource={x:Static RelativeSource.Self}}"/>
    86. </Trigger>
    87. </Style.Triggers>
    88. </Style>
    89. </TextBox.Resources>
    90. </TextBox>
    91. <CheckBox HorizontalAlignment="Center" IsChecked="{Binding Path=Deleteset}" Margin="0,0,5,0" Grid.Column="1" Grid.Row="1"/>
    92. <CheckBox HorizontalAlignment="Center" IsChecked="{Binding Path=Hiddenfolder}" Margin="0,0,5,0" Grid.Column="2" Grid.Row="1"/>
    93. </Grid>
    94. </Border>
    95. </DataTemplate>
    96. </Setter.Value>
    97. </Setter>
    98. <Setter Property="Background" Value="{StaticResource Fill}"/>
    99. <Setter Property="SelectionMode" Value="Single"/>
    100. <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
    101. </Style>

    das ganz hängt dann in einer listview in der Windos XAML
    angezeigt wiwird allles aber wie gesagt der Event trigger der TextBox wird nicht behandelt.

    vielleicht hat jemand eine Idee.
    Gruß
    Robert
    Hallo

    Danke für dein Lob.

    Ich kann es gerade nicht probieren, versuche aber mal in einem Setter eines Styles initial das Property zu setzen, dies wird oft benötigt.

    XML-Quellcode

    1. <TextBox Text="{Binding Path=Ordnername, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, NotifyOnSourceUpdated=True}" Margin="0,0,5,0" Grid.Row="1" >
    2. <TextBox.Resources>
    3. <Style TargetType="{x:Type TextBox}">
    4. <Setter Property="ToolTip" Value={x:Null}/>
    5. <Setter Property="Validation.ErrorTemplate"
    6. Value="{StaticResource GlobalErrorTemplate}" />
    7. <Style.Triggers>
    8. <Trigger Property="Validation.HasError"
    9. Value="True">
    10. <Setter Property="ToolTip"
    11. Value="{Binding (Validation.Errors)[0].ErrorContent, RelativeSource={x:Static RelativeSource.Self}}"/>
    12. </Trigger>
    13. </Style.Triggers>
    14. </Style>
    15. </TextBox.Resources>
    16. </TextBox>


    Code ist jetzt aus dem Kopf, sollte aber passen.
    Ansonsten prüfe bitte ob HasError wirklich True ist!!

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.
    Danke Sascha,
    ich hab jetzt gefunden es lag daran das ich da Müll mache wie immer :D . Die Bindung ist falsch bzw. geht in eine andere Klasse, wenn man da den IDataErrorInfo aktiviert geht es dann auch. Ich muss mir das ViewModel nochmal anschauen und evt. neu Disignen.
    danke noch mal für die Idee.
    Gruß
    Robert