2

我有一个复选框的 ObjectDataProvider:

<UserControl.Resources>
        <ObjectDataProvider x:Key="checkboxes" ObjectType="{x:Type Models:Items}" />
        <DataTemplate x:Key="Item" DataType="Models:Item" >
            <CheckBox Content="{Binding Path=Name}" IsChecked="{Binding Path=Include}" />
        </DataTemplate>
        <ItemsPanelTemplate x:Key="HorizontalList" >
            <StackPanel Orientation="Horizontal" />
        </ItemsPanelTemplate>
    </UserControl.Resources>

当我浏览控件并进入数据模板时,它看起来会在进入内部控件之前选择它,如下所示 -

制表位选择对象数据提供者

有什么办法可以关闭它吗?

结论

需要关闭的不是 ObjectDataProvider,而是 ItemsControl -

<ItemsControl ItemsSource="{Binding ElementName=container,Path=ViewModel.Items}"
                          ItemTemplate="{StaticResource Item}"
                          ItemsPanel="{StaticResource HorizontalList}"
                          IsTabStop="False"/>

谢谢!

4

1 回答 1

2

您的代码中的 ObjectDataProvider 没有问题,只需尝试IsTabStop = false在 CheckBox 所在的容器中设置即可。你能提供更多来自 UserControl 的 xaml 代码吗?

于 2011-06-03T18:31:22.930 回答