DataTemplate中的WPF Popup

时间:2015-01-07 21:00:28

标签: wpf xaml

我需要在DataTemplate中使用WPF Popup,如下所示:

<ScrollViewer>
    <ItemsControl ItemsSource="{Binding Collection}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <TextBox Name="MyTextboxBrief" Text="{Binding TextBrief}"/>
                    <Popup PlacementTarget="{Binding ElementName=MyTextboxBrief}" Placement="Center">
                        <TextBox Name="MyTextboxVerbose" Text="{Binding TextVerbose}"/>
                    </Popup>
                </Grid>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</ScrollViewer>

但是,这个Popup的行为应该是这样的:

  1. 必须与相关的ItemsControl项目一起滚动
  2. 当应用窗口最小化时 - 它不应该在桌面上保持可见
  3. 它会比ItemsControl高,它的内容不能被剪裁,但它不能改变ItemsControl高度
  4. 它会比相关的ItemsControl项目更广泛 - 但它不应该将其他ItemsControl项目向左或向右移动
  5. 我有一种强烈的感觉,我应该以某种方式使用ComboBox模板 - 但我不明白如何获得它的弹出行为

1 个答案:

答案 0 :(得分:0)

我认为Popup不会在这里帮助你,也不会ComboBox。看看这是否对您有所帮助:

<DataTemplate>
    <Grid>
        <TextBox Name="MyTextboxBrief" Text="{Binding TextBrief}" />


        <!-- You might want to bind visibility against
            some kind of property -->
        <Canvas >
            <Canvas.RenderTransform>
                 <!--In case you want to move--> 
                <TranslateTransform Y="-5" />
            </Canvas.RenderTransform>

            <Border Width="100" Height="20" Background="Black">
                <TextBlock Text="Test" />
            </Border>
        </Canvas>
    </Grid>
</DataTemplate>