I'm trying to pass int variable from MainWindow.xaml to UserControl. When I'm debbuging myGridSize is always equal zero. I would appreciate any help.
MainWindow.xaml
x:Name="myWindow"> <Grid> <my:SudokuGrid x:Name="mySudokuGrid" myGridSize="{Binding SudokuSize, ElementName=myWindow}"> </my:SudokuGrid> </Grid> MainWindow code
public static readonly DependencyProperty SudokuSizeProperty = DependencyProperty.Register("SudokuSize", typeof(int), typeof(MainWindow), new FrameworkPropertyMetadata(null)); private int SudokuSize { get { return (int)GetValue(SudokuSizeProperty); } set { SetValue(SudokuSizeProperty, value); } } public MainWindow() { SudokuSize = 9; InitializeComponent(); } UserControl.xaml
x:Name="gridCustom"> <UniformGrid Name="SudokuUniGrid" Style="{StaticResource CustomGridStyle}"> </UniformGrid> UserControl code
public static readonly DependencyProperty myGridSizeProperty = DependencyProperty.Register("myGridSize", typeof(int), typeof(SudokuGrid), new FrameworkPropertyMetadata(null)); public int myGridSize { get { return (int)GetValue(myGridSizeProperty); } set { SetValue(myGridSizeProperty, value); } } UniformGrid BuildGrid() { //myGridSize = 9; UniformGrid theGrid = new UniformGrid(); for (int i = 0; i < myGridSize * myGridSize; ++i) { myButton button = new myButton(); button.cmLen = myGridSize; button.Width = 30; button.Height = 30; button.Tag = i; theGrid.Children.Add(button); } return theGrid; } public SudokuGrid() { InitializeComponent(); SudokuUniGrid.Children.Add(BuildGrid()); }