Ok, it's a tiny bit complex. I created a `MonthViewControl` user control: 

### Xaml:

```
<UserControl x:Class="MonthView.Controls.MonthViewControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"  
             xmlns:controls="clr-namespace:MonthView.Controls" 
             DataContext="{Binding RelativeSource={RelativeSource Self}}">
    <!-- The following line is important! -->
    <TextBlock Text="{Binding Path=Date, Converter={...}}" />
    <ItemsControl>
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <UniformGrid Rows="6" Columns="1" />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <controls:MonthWeekControl />
        <controls:MonthWeekControl />
        <controls:MonthWeekControl />
        <controls:MonthWeekControl />
        <controls:MonthWeekControl />
        <controls:MonthWeekControl />
    </ItemsControl>
</UserControl>

```

### Code-behind:

```
public partial class MonthViewControl : UserControl
{
    public static readonly DependencyProperty DateProperty =
        DependencyProperty.Register("Date", typeof(DateTime), 
        typeof(MonthViewControl), 
        new UIPropertyMetadata(DateTime.Today));

    public DateTime Date
    {
        get { return (DateTime)GetValue(DateProperty); }
        set { SetValue(DateProperty, value); }
    }

    public MonthViewControl()
    {
        InitializeComponent();
    }
}

```

Next, I created `MonthWeekControl` user control: 

### Xaml:

```
<UserControl x:Class="MonthView.Controls.MonthWeekControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:controls="clr-namespace:MonthView.Controls"
             DataContext="{Binding RelativeSource={RelativeSource Self}}">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="30" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Border Grid.Column="0">
            <!-- The following line is important! -->
            <TextBlock Text="{Binding Path=WeekNumber}" />
        </Border>
        <ItemsControl Grid.Column="1">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <UniformGrid Rows="1" Columns="7" />
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <controls:MonthDayControl />
            <controls:MonthDayControl />
            <controls:MonthDayControl />
            <controls:MonthDayControl />
            <controls:MonthDayControl />
            <controls:MonthDayControl />
            <controls:MonthDayControl />
        </ItemsControl>
    </Grid>
</UserControl>

```

### Code behind:

```
public partial class MonthWeekControl : UserControl
{
    public static readonly DependencyProperty WeekNumberProperty =
        DependencyProperty.Register("WeekNumber", typeof(int), 
        typeof(MonthWeekControl), 
        new UIPropertyMetadata(Utilities.GetWeekInYear(dateFromMonthViewControl)));
    // Utilities.GetWeekInYear(DateTime date) gets the week number 
    // based on the provided date

    public int WeekNumber
    {
        get { return (int)GetValue(WeekNumberProperty); }
        set { SetValue(WeekNumberProperty, value); }
    }

    public MonthWeekControl()
    {
        InitializeComponent();
    }
}

```

The problem is that I don't know how to reach the `Date` dependency property from `MonthViewControl` in order to use it in `MonthWeekControl`. As you can see in the definition of the `WeekNumber` dependency property of the `MonthWeekControl`, it needs the date in order to calculate the week number. 

Please help. Thanks!