WPF - ControlTemplate作为Thumb控件模板数据绑定

时间:2012-11-15 11:22:16

标签: wpf xaml .net-4.0 thumbnails controltemplate

我有一个自定义的MyThumb用户控件,它实现了Thumb类。此用户控件使用ControlTemplate进行模板化,其中ItemsSource绑定到具有三个属性的自定义类的ObservableCollection。 ObservableCollection位于名为ImportFileColumns的代码中的公共属性中,并在InitializeComponent()之前填充。问题是,ObservableCollection填充了正确的数据,但是ControlTemplate永远不会得到数据绑定(TextBlock控件应该使用ColumnName属性中的值填充),所以我的假设是我在XAML中做错了。

这是XAML:

        <ControlTemplate x:Key="columnsThumbTemplate">
            <Grid Width="175" >
                <ItemsControl Name="isTest" ItemsSource="{Binding ImportFileColumns}">
                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <StackPanel Orientation="Vertical" IsItemsHost="True" />
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>

                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <Grid Width="175">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="150" />
                                    <ColumnDefinition Width="25" />
                                </Grid.ColumnDefinitions>
                                <Border BorderBrush="LightGray" BorderThickness="1,0,1,1" Background="White" Padding="10,5" Grid.Column="0">
                                    <StackPanel Orientation="Horizontal" >
                                        <TextBlock Text="{Binding Path=ColumnName}" Height="13" />
                                    </StackPanel>
                                </Border>
                                <my:MyConnector x:Name="myRightConnector"
                                            Template="{StaticResource tplRightConnector}" 
                                            Grid.Column="1"
                                            IsConnectorClicked="False" 
                                            PreviewMouseLeftButtonDown="myConnector_PreviewMouseLeftButtonDown"
                                            Canvas.Left="Auto"
                                            Canvas.Right="Auto" 
                                            DragDelta="onDragDelta"/>
                            </Grid>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            </Grid>
        </ControlTemplate>

        <my:MyThumb x:Name="myCustomColumnsThumb" 
                    Canvas.Left="272"
                    Canvas.Top="400"
                    Template="{StaticResource columnsThumbTemplate}" 
                    DragDelta="onDragDelta" 
                    PreviewMouseLeftButtonDown="connector_PreviewMouseLeftButtonDown" />

0 个答案:

没有答案