Hallo zusammen..
brauche mal etwas schützenhilfe eurerseits, ich weis nicht genau ob ich mit beiden beinen auf dem schlauch stehe oder einfach einen falschen denkansatz habe..
ich benötige ein DataGridClomunHeader, welcher zwei zeilen und zwei spalten hat, soweit kein problem..
nun möchte ich das in der ersten zeile, die zweite spalte bzw das control(hier der Button) immer rechts angedockt wird und in der zweiten zeile, die zweite spalte den restlichen platz vollständig ausfüllt.(auch nach dem resize der spalte)
habe diverse variationen von controls und/oder ausrichtungen probiert die mir eingefallen sind, auch die foren- oder googlesuche half mir nicht wirklich weiter.
hier mal mein aktueller stand, das ganze befindet sich in einem UserControl
<Grid x:Name="MainContent" Background="LightGray">
<DataGrid x:Name="_DataGrid" VerticalScrollBarVisibility="Auto" IsReadOnly="True" HorizontalScrollBarVisibility="Auto" CanUserSortColumns="True" CanUserReorderColumns="True" CanUserAddRows="False" CanUserResizeRows="False" ItemsSource="{Binding CurrentDataTable}">
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid Grid.Row="0" Grid.Column="0">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="{Binding}" />
<Button Grid.Row="0" Grid.Column="1" MinWidth="30" MaxWidth="30"/>
</Grid>
<Grid Grid.Row="1" Grid.Column="0" >
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<ComboBox Grid.Row="0" Grid.Column="0" MinWidth="30"/>
<TextBox Grid.Row="0" Grid.Column="1" />
</Grid>
</Grid>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGrid.Resources>
</DataGrid>
</Grid>
vlt hat jemand von euch ja einen anderen ansatz bzw ein anderes bsp für mich.
vielen dank im vorraus 😃
ColumnDefinition hat eine Width-Eigenschaft. Wenn du den Wert auf "*" setzt, dann wird die restliche Breite ausgefüllt.
Um ein Element rechts auszurichten, kannst du die HorizontalAlignment-Eigenschaft verwenden.
Weeks of programming can save you hours of planning
vielen dank fuer deine antwort 😃
habe es natuerlich mit angabe der groesse und positionierung/ausrichtung schon versucht..
da klappt das mit dem ausrichten auch, nur passt sich da der bereich(hier Rot) nicht der eigentlichen breite der spalte an.
mit dem StackPanel und dem DockPanel habe ich gleichen effekt..
die breite, welche ich an die spaltenbreite angepasst haben moechte wird lediglich durch eingabe (bzw anpassung) in die textbox vergroessert..
wie gesagt vlt habe ich da einen falschen denkansatz oder sehe grade den wald vor lauter baeumen einfach nur nicht.
Wahrscheinlich ist das Grid direkt hinter dem roten BEreich zuende. Versuche mal das Grid auf HorizontalAlignment.Stretch zu setzen, nicht den Button. Außerdem sollte es einfacher sein wenn beide Zeilen in einem Control wären.
hallo witte 😃
HorizontalAlignment zeigt keine auswirkungen in dem fall.. das auslagern in ein eigenes control werd ich nachhergleich mal testen
danke dir 😃