Wie ändert ich dynamisch Grid.NET in .NET MAUI basierend auf einer gebundenen Eigenschaft?C#

Ein Treffpunkt für C#-Programmierer
Guest
 Wie ändert ich dynamisch Grid.NET in .NET MAUI basierend auf einer gebundenen Eigenschaft?

Post by Guest »

Frage:
Ich arbeite an einer .NET -Maui -Anwendung, in der ich ein Gitter mit 3 Zeilen habe: < /p>
Header (Zeile 0 - Immer sichtbar)
Die heutigen Termine (Zeile 1 - sollte versteckt sein, wenn es keine Termine gibt)
CollectionView mit Schaltflächen (Zeile 2 - sollte zu Reihe 1 verschieben, wenn Zeile 1 versteckt ist)
Das Problem ist, dass wenn Zeile 1 (welche enthält HomePagediSPlayingAppointmentBorder) ist versteckt, die CollectionView (Zeile 2) bewegt sich nicht ordnungsgemäß in Reihe 1. Stattdessen springt sie in Zeile 0 und überlappt den Header. Zeile des Collectionviews basierend auf der Eigenschaft von Has -AnAmpointments. < /P>
Was ich bisher versucht habe /> Bindung direkt an grid.row (nicht funktioniert) < /li>
< /ol>

Code: Select all

< /code>
Dies funktioniert nicht, da Grid.row keine bindbare Eigenschaft ist. Xaml (hat nicht funktioniert) < /li>
< /ol>







< /code>
funktioniert immer noch nicht, da Grid.row keine bindbare Eigenschaft ist. In Code-Behind (nicht richtig funktioniert)
in meinem HomeViewModel habe ich eine beobachtbare Property: < /li>
< /ol>
[ObservableProperty]
private bool hasAppointments;
< /code>
und in homepage.xaml.cs habe ich versucht, das Grid.Row dynamisch zu aktualisieren: < /p>
private void HomeViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == nameof(HomeViewModel.HasAppointments))
{
UpdateCollectionViewRow();
}
}

private void UpdateCollectionViewRow()
{
if (BindingContext is HomeViewModel viewModel)
{
MyCollectionView.SetValue(Grid.RowProperty, viewModel.HasAppointments ? 2 : 1);
}
}

protected override async void OnAppearing()
{
base.OnAppearing();

if (BindingContext is HomeViewModel viewModel)
{
viewModel.PropertyChanged += HomeViewModel_PropertyChanged;
}
}
< /code>
Dies funktioniert jedoch auch nicht korrekt. Die CollectionView bewegt sich immer noch über den Header (Zeile 0), anstatt sich auf Zeile zu verschieben. Was ist der richtige Weg, um gitter dynamisch zu ändern. />  Gibt es eine bessere Möglichkeit, dieses [url=viewtopic.php?t=11587]Problem[/url] zu lösen? Plattformen: Android & iOS
Ausgabe: CollectionView wechselt in Zeile 0 (über dem Kopf), anstatt sich auf Zeile 1 zu verschieben, wenn die Angabe falsch ist.  < /P>

< /code>







< /code>
[ObservableProperty]
private bool hasAppointments;
< /code>
























Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post