Keszowanie kontrolki WPF

0

Mam taki fragment kodu:

        <DataGrid x:Name="orderDataGrid" ItemsSource="{Binding}">
            <DataGrid.Columns>
                <DataGridTextColumn x:Name="orderIdColumn" Binding="{Binding OrderId}" Header="Nr zam."/>
                <DataGridTextColumn x:Name="descriptionColumn" Binding="{Binding Description}" Header="Opis"/>
            </DataGrid.Columns>
            <DataGrid.RowDetailsTemplate>
                <DataTemplate>
                    <Border x:Name="rowDetailsBorder" Loaded="Border_Loaded">
                        <TextBlock Text="{Binding Description}" TextWrapping="Wrap"/>
                    </Border>
                </DataTemplate>
            </DataGrid.RowDetailsTemplate>
        </DataGrid>

W tabeli dla każdego wiersza można wyświetlić szczegóły. Zdarzenie Loaded jest wywoływane tylko jeden raz dla danego wiersza, później szczegóły te prawdopodobnie wyświetlane są z pamięci podręcznej. Czy da się tą pamięć wyłączyć? Ewentualnie jak wywoływać zdarzenie Loaded za każdym razem, gdy wyświetlane są szczegóły?

0

co masz w tym zdarzeniu Loaded
pokaż kod
co właściwie chcesz zrobić?

W tym momencie pytasz czemu zdarzenie robiące A wywołuje się tylko w momencie A a nie B bo Ty byś potrzebował w momencie B

0

Próbuję dynamicznie ustawić szerokość ramki ze szczegółami:

 
        private void Border_Loaded(object sender, RoutedEventArgs e)
        {
            rowDetailsBorder = sender as Border;
            rowDetailsBorder.Width = orderIdColumn.ActualWidth + descriptionColumn.ActualWidth;
        }

Problem jest w tym, że gdy zmienię szerokość kolumny i wrócę do wiersza, w którym szczegóły były już wyświetlane,
szerokość ramki ze szczegółami ma starą wartość (czasami się odświeża po przesunięciu suwakiem).

1 użytkowników online, w tym zalogowanych: 0, gości: 1