Extindeți/Restrângeți o rețea WPF imbricată

Am creat o îmbinare wpf Datagrid. Văd că vă puteți extinde făcând clic pe rând, dar nu se prăbușește atunci când faceți același lucru.

Câteva întrebări:

  1. Cum poate restrânge utilizatorul grila?
  2. Există o modalitate de a obține butoanele Expand/Reducere pe rândurile părinte?
  3. Ori de câte ori faceți clic pe un alt părinte pentru a se extinde, acesta se restrânge pe cel anterior. Există o modalitate de a face grila să rămână așa cum o faceți. adică dacă extind rândul 1, apoi merg la rândul 3, rândul 1 va rămâne acolo unde l-am extins.

Mulțumiri, Greg

0

2 răspunsuri

Există abordări de cuplu pentru a ajunge la un astfel de comportament. De exemplu Extindeți/Reduceți butonul într-un Silverlight DataGrid .

Dacă preferați xaml atunci utilizați:


Și AttachedBehavior care va schimba de fapt DetailsVisibility :

public class ExpandButtonAction : TargetedTriggerAction
{
    #region Invoke

    protected override void Invoke(object parameter)
    {
        RoutedEventArgs eventArgs = (RoutedEventArgs) parameter;
        Button bsender = eventArgs.OriginalSource as Button;
        var row = DataGridRow.GetRowContainingElement(eventArgs.OriginalSource as FrameworkElement);
        if (row.DetailsVisibility == Visibility.Visible)
        {
            row.DetailsVisibility = Visibility.Collapsed;
        }
        else
        {
            row.DetailsVisibility = Visibility.Visible;
        }
    }

    #endregion
}

Aplicați acest lucru pentru RowHeaderStyle din DataGrid în care doriți să extindeți/restrângeți DetailsTemplate .

0
adăugat
Ce este spațiul de nume sdk în acest exemplu?
adăugat autor g.t.w.d, sursa
Trebuie să am ceva instalat pentru asta? Nu poate găsi DataGridFrozenGrid.
adăugat autor g.t.w.d, sursa
Da, am aflat asta. Dar xaml-ul meu spune că nu poate găsi DataGridFrozenGrid pentru acel spațiu de nume pe care l-ai furnizat mai sus. Mă întreb dacă este pentru că fac WPF, nu Silverlight.
adăugat autor g.t.w.d, sursa
Există un SDK care trebuie instalat pentru aceste chestii? Nu pot găsi o referință pentru acest lucru: xmlns: i = "clr-namespace: System.Windows.Interactivity; assembly = System & zwnj; .Windows.Interactivi & zwnj; ty" Nu pot găsi System.Windows.Interactivity în referința mea listă.
adăugat autor g.t.w.d, sursa
adăugat autor Anatolii Gabuza, sursa
adăugat autor Anatolii Gabuza, sursa
@GregoryDodd Actualizat cu ceva destul de similar fără fără DataGridFrozenGrid .
adăugat autor Anatolii Gabuza, sursa
SDK trebuie instalat pe aparat. Uită-te aici: stackoverflow.com/questions/7548780/…
adăugat autor Anatolii Gabuza, sursa

Utilizați wpf Expander. Deci, puteți extinde DataGrid-ul interior.

0
adăugat
Am încercat expandatorul, dar seamănă cu rahatul. Unde ai pus-o?
adăugat autor g.t.w.d, sursa
trebuie să creați un stil xaml pentru wpf și prin plasarea expanderului.
adăugat autor Kishore Kumar, sursa
încercați @anatoliiG probă xaml
adăugat autor Kishore Kumar, sursa