0

コード ビハインドを使用して 6x7 グリッドに要素を追加するのと同じくらい簡単なことをしようとしています。グリッドは xaml で次のように定義されています。

        <Grid x:Name="CalendarGrid" Grid.Row="1" Visibility="Collapsed">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>               

        </Grid>

グリッドにボタンを設定する InitializeCalendar という関数があります。どういうわけか、ボタンを追加する行と列を指定する方法がわかりません。CalendarGrid の行と列を参照するにはどうすればよいですか?

    void InitializeCalendar()
    {
        for (int i = 0; i < 6; i++)
        {
            for (int j = 0; i < 7; j++)
            {
                butArray[i + 1, j + 1] = new Button();
                //CalendarGrid. I cant find function to specify the row and button
            }
        }
    }

ColumnProperty というプロパティがあることがわかりました。

butArray[i + 1, j + 1].SetValue(Grid.ColumnProperty, 0);

しかし、私のページには非常に多くのグリッドがあります。CalendarGrid を参照するにはどうすればよいですか? 解決策はありますか?

ありがとう、

4

2 に答える 2

2

Grid.SetRow( msdn ) およびGrid.SetColumn( msdn ) メソッドを使用できます。

void InitializeCalendar()
{
    for (int i = 0; i < 6; i++)
    {
        for (int j = 0; j < 7; j++)
        {
            butArray[i, j] = new Button();
            butArray[i, j].Content = (i).ToString() + (j).ToString();                 
            CalendarGrid.Children.Add(butArray[i, j]);
            Grid.SetRow(butArray[i, j], i);
            Grid.SetColumn(butArray[i, j], j);                   
        }
    }
}
于 2013-09-25T10:28:41.290 に答える
2

ボタンを CalendarGrid に追加する必要があります。次の方法を試してください。

CalendarGrid.Children.Add(butArray[i + 1, j + 1]);
butArray[i + 1, j + 1].SetValue(Grid.ColumnProperty, columnNumber);
butArray[i + 1, j + 1].SetValue(Grid.RowProperty, rowNumber);
于 2013-09-25T10:22:34.523 に答える