将多个用户控件绑定到数据网格行

时间:2018-03-05 20:04:04

标签: wpf datagrid user-controls

我正在尝试建立一个预订屏幕,其中列将是周一至周日。可能有多行,但我认为这不重要。我想添加七个用户控件并将每个控件绑定到一周中的不同日期。

我有一个带有usercontrol的数据网格,它正在运行。为了使它工作,我不得不将usercontrol绑定到datarow(Mon)上的特定属性。我希望能够告诉usercontrol通过xaml绑定到哪个属性

用户控件datagrid看起来像这样。

& foo.exe --% -name="john.doe" -request="delete file" -argument="\jdoe\temp\nsfwstash.zip"

在主窗口中,我将userControll添加到数据网格中,如此

        <DataGrid 
            IsReadOnly="False"
            VerticalAlignment="Stretch"
            HorizontalAlignment="Stretch"
            AutoGenerateColumns="False"
            CanUserAddRows="False"
            CanUserDeleteRows="False"
            SelectionMode="Extended"
            ItemsSource="{Binding Mon.BookingWeekBookingList, Mode=OneWay}"
            SelectionUnit="FullRow"
            EnableColumnVirtualization="True"
            EnableRowVirtualization="True" >
        <DataGrid.Columns>
            <DataGridTextColumn Header="Contract" Width="50*" IsReadOnly="True" Binding="{Binding Path=ContractId}" />
            <DataGridTextColumn Header="Tonnes" Width="50*" IsReadOnly="True" Binding="{Binding Path=Tonnes}" />
        </DataGrid.Columns>
    </DataGrid>

如何更改它以便我在主窗口绑定中指定星期几?而不是用户控件上的itemsSource。

1 个答案:

答案 0 :(得分:0)

我实际上非常接近,答案是像这样设置usercontrol的数据绑定

                ItemsSource="{Binding BookingWeekBookingList, Mode=OneWay}"

然后在主窗口中

                <DataGridTemplateColumn Header="Sunday" >
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate >
                        <local:BookingWeekIntervalView DataContext="{Binding Path=Sun}"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>