У вас есть эта привязка настроена:
<UserControl ...>
<UniformGrid
Name="uniformGrid"
Rows="{Binding BoardRows}"
Columns="{Binding BoardColumns}"
>
</UniformGrid>
</UserControl>
Проблема в том, что ваша привязка не работает, поскольку привязка использует источник данных по умолчанию, который является DataContext
из UserControl
. Возможно, вы не установили DataContext
, но это нормально, потому что это не то, что вам нужно.
Вы хотите связать число Rows
в UniformGrid
со свойством BoardView.BoardRows
. Поскольку UserControl
- это предыдущий фрагмент кода, - это a BoardView
, вы можете присвоить BoardView
имя и использовать синтаксис ElementName
для ссылки на него следующим образом:
<UserControl Name="boardView" ...>
<UniformGrid
Name="uniformGrid"
Rows="{Binding BoardRows, ElementName=boardView}"
Columns="{Binding BoardColumns, ElementName=boardView}"
>
</UniformGrid>
</UserControl>
Это говорит: «Привязать UniformGrid.Row
к свойству BoardRows
элемента с именем boardView
», именно то, что вы хотите!