Как динамически изменить сетку. Включить в .net maui на основе связуемого свойства?C#

Место общения программистов C#
Ответить
Anonymous
 Как динамически изменить сетку. Включить в .net maui на основе связуемого свойства?

Сообщение Anonymous »

Вопрос:
Я работаю над приложением .NET MAUI, где у меня есть сетка с 3 строками: < /p>
Заголовок (строка 0 - всегда виден)
Сегодняшние встречи (строка 1 - должны быть скрыты, если нет встреч)
collectionView с кнопками (строка 2 - должна перейти к строке 1, если строка 1 скрыта)
Проблема заключается в том, что когда строка 1 (которая будет содержит HomePagedisplayingAppointmentBorder) скрыт, CollectionView (ряд 2) не перемещается должным образом в строку 1. Вместо этого он прыгает на строку 0, перекрывая заголовок. Ряд CollectionView на основе свойства HasPappointments. /> Привязывание непосредственно с grid.row (не сработал) < /li>
< /ol>

< /code>
Это не работает, потому что grid.row не является связующим свойством. < /p>

datatrigger в Xaml (не сработал) < /li>
< /ol>







< /code>
по -прежнему не работает, поскольку grid.row не является связующим свойством. < /p>

Обработка В Code-behind (не работал должным образом)
в моем HomeViewModel у меня есть наблюдаемый пропертиза: < /li>
< /ol>
[ObservableProperty]
private bool hasAppointments;
< /code>
и в homepage.xaml.cs я попытался обновить сетку динамически: < /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>
Однако это также работает неправильно. CollectionView по -прежнему перемещается над заголовком (строка 0) вместо того, чтобы перейти к строке 1. < /p>
Мои вопросы: < /p>

Как правильный способ динамически изменить grid.row in .net maui? /> Есть ли лучший способ решить эту проблему? Платформы: Android & IOS
Проблема: CollectionView перемещается в строку 0 (выше заголовка) вместо перемещения в строку 1, когда HasPapointments является ложным. < /P>

< /code>







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


























Подробнее здесь: https://stackoverflow.com/questions/794 ... e-property
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»