繁体   English   中英

将StackPanel的CodeBehind实例绑定到XAML

[英]Bind a CodeBehind instance of StackPanel to XAML

我有一个奇怪的情况。

我需要在代码隐藏中创建一个StackPanel。 然后,我需要将该堆栈面板绑定到xaml中的UI。

通常,我只会为此使用ContentControl。 但是它具有焦点问题(不能从选项卡顺序Focusable =“ False”阻止)。 我也尝试了一个usercontrol,但是有同样的问题。

因此,我需要使用其他某种控件。 我决定成立一个小组。 (StackPanel看起来和其他面板一样好。)

但是,我似乎找不到在Xaml中绑定到“ In Code”堆栈面板的方法吗?

有没有办法做到这一点? (不使用contentcontrol或usercontrol)

它不能从选​​项卡顺序中阻止Focusable =“ False”无效

那么IsTabStop呢?

另外,要使用的最轻便的东西是ContentPresenter ,这就是我要使用的东西。

在KAXAML中进行了测试,按下TAB时,焦点不会移至ContentPresenter或ContentControl中定义的任何项目。

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <StackPanel>
  <TextBox>aaaaa</TextBox>
  <TextBox>bbbbb</TextBox>
    <ContentControl Focusable="False">
    <ContentControl.ContentTemplate>
    <DataTemplate>
    <StackPanel Focusable="False" Background="Red" Width="100" Height="50"></StackPanel>
    </DataTemplate>
    </ContentControl.ContentTemplate>
    </ContentControl>
    <ContentControl Focusable="False">
    <ContentControl.ContentTemplate>
    <DataTemplate>
    <TextBox Focusable="False">hello</TextBox>
    </DataTemplate>
    </ContentControl.ContentTemplate>
    </ContentControl>
    <ContentPresenter Focusable="False">
    <ContentPresenter.Content>
    <TextBox Focusable="False">hello</TextBox>
    </ContentPresenter.Content>
    </ContentPresenter>
  <TextBox>ccccc</TextBox>
  <TextBox>ddddd</TextBox>
  </StackPanel>
</Page>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM