Привязка цвета фона не получает правильного значения после обновления источника элементов (Winui 3, .net 9)C#

Место общения программистов C#
Anonymous
 Привязка цвета фона не получает правильного значения после обновления источника элементов (Winui 3, .net 9)

Сообщение Anonymous »

Я пытаюсь обновить цвет фона некоторых пользовательских элементов управления, которые я создал, на основе значений из наблюдаемой коллекции, связанной с XAML через шаблон данных, но привязки получают неправильные значения после изменения сбора. Другие свойства обновляются правильно. P>

Код: Выделить всё

CustomControls(project)/Themes/Generic.xaml
: customcontrols/customtablecard.cs

Код: Выделить всё

public class CustomTableCard : Control
{
public static readonly DependencyProperty BackgroundColorProperty =
DependencyProperty.Register(
nameof(BackgroundColorProperty),
typeof(string),
typeof(CustomTableCard),
new PropertyMetadata(null));

public string BackgroundColorProp
{
get => (string)GetValue(BackgroundColorProperty);
set => SetValue(BackgroundColorProperty, value);
}

public CustomTableCard()
{
this.DefaultStyleKey = typeof(CustomTableCard);
}

protected override void OnApplyTemplate()
{
base.OnApplyTemplate();
[...]
}
< /code>
View(Packaged project)/CustomTablePage.xaml
:

Код: Выделить всё








[...]


View/CustomTablePage.xaml.cs
:

Код: Выделить всё

public void loadTables()
{
CustomTableCardDataRepository.FillCustomTablesCollection((int)userId);

itemsViewTables.ItemsSource = CustomTableCardDataRepository.customTableItemsCollection;
}
< /code>
Even though the data in customTableItemsCollection
верен до и после того, как он назначен источникам элементов, привязка для фона сетки получает неправильное значение. >
< /p>
Новые таблицы, добавленные без перезагрузки всей страницы. Только что называется loadtables () и заполнил CustomTableIteMscollection с правильными данными:
< /p>
Каким -то образом ощущается, что цвета каким -то образом смешиваются между элементами управления.
then Если я просто переключаю страницы и возвращаюсь к этому, все снова отображается правильно:
< /p>
Иногда все кнопки получают зеленые фоны: < /p>

Но когда я отлаживаю, я вижу свойство первой кнопки на белом CustomControls/CustomTableCard.cs :

Первая кнопка связана с правильным свойством, но это не правильный цвет < br/>
Данные в элементах OpersSource:
< /p>
Я также получил это после перезапуска приложения и удаления другой кнопки (карта). Я понятия не имею, откуда он получает этот цвет, если нет других кнопок. Полагаю, это не может быть смесь данных?
, если только он не получает предыдущие данные. //i.sstatic.net/h3j7o9ho.png "/>

Подробнее здесь: https://stackoverflow.com/questions/794 ... -is-update

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