2

Thumb クラスを実装するカスタム MyThumb ユーザー コントロールがあります。このユーザー コントロールは、ItemsSource が 3 つのプロパティを持つカスタム クラスの ObservableCollection にバインドされている ControlTemplate を使用してテンプレート化されています。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" />
4

0 に答える 0