У меня есть UserControl
с 2 пользовательских DependencyProperty
s (ColumnsCount
, RowsCount
):привязки данных с пользовательского Dependency-свойство UserControl не работает
public partial class CabinetGrid : UserControl
{
public static readonly DependencyProperty ColumnsCountProperty =
DependencyProperty.Register("ColumnsCount", typeof (int), typeof (CabinetGrid));
public static readonly DependencyProperty RowsCountProperty =
DependencyProperty.Register("RowsCount", typeof (int), typeof (CabinetGrid));
public int ColumnsCount
{
get { return (int) GetValue(ColumnsCountProperty); }
set { SetValue(ColumnsCountProperty, value); }
}
public int RowsCount
{
get { return (int) GetValue(RowsCountProperty); }
set { SetValue(RowsCountProperty, value); }
}
}
И вот DataBinding
:
<view:CabinetGrid Grid.Column="1" Grid.Row="2" x:Name="GridRack" ColumnsCount="{Binding SelectedRoom.ColumnCount}" />
тогда как окно DataContext
имеет свойство SelectedRoom
, которое вызывает PropertyChanged-Event
.
С помощью отладки, я узнал, что DataContext
UserControl
установлен правильно.
Однако, когда SelectedRoom
изменился (=> Я выбрал другой элемент в списке), в DependencyProperty
ColumnsCount
из моего UserControl
не обновляется. Я очень расстроен, так как я уже провел целый день, отлаживая это неожиданное дерьмо, используя такие инструменты, как XAMLSpy
и WpfSpoon
.
Пожалуйста, помогите.
EDIT:
Clemens уже указывал, что точка останова в CLR-Property
обертывание DependencyProperty
(ColumnsCount
) является не уволен. Это серьезная проблема, так как я должен вызвать некоторые методы изменения. Я пытаюсь использовать PropertyChangedCallback
, но в настоящее время я испытываю некоторые ошибки.
thx но он тоже не работает. – ANewQuestionnaire
«Столбцы моего UserControl не обновляются». Как именно вы это проверяете? Разве вы ничего не видите или просто не изменили значения? Существует ли механизм уведомления об изменении свойств для исходного свойства (т. Е. 'SelectedRoom')? – Clemens
@Clemens Конечно, 'SelectedRoom' ofc вызывает событие PropertyChanged. Я также создал 'DataBinding' для' SelectedRoom' в другом 'UserControl', и я могу привязываться к любому свойству' SelectedRoom' должным образом (он обновляется) – ANewQuestionnaire