2

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

0 回答 0