相关疑难解决方法(0)

ContentControl和ContentPresenter有什么区别?

我不确定何时应该使用ContentPresenter而不是ContentControl(反之亦然).目前,我ContentControl几乎一直在使用我DataTemplate的.何时会ContentPresenter是更好的选择?为什么?

.net wpf contentpresenter contentcontrol

200
推荐指数
3
解决办法
8万
查看次数

触发的内容模板

我正在尝试设置一个基于DataTrigger更改的ContentTemplate.从语法上讲,我觉得这应该可行,但在尝试呈现页面时会导致堆栈溢出:

<ItemsControl ItemsSource="{Binding Path=ExtendedFieldCollection}" ItemTemplate="{StaticResource RequiredFieldsTemplate}" />

<!--Where-->
<DataTemplate x:Key="RequiredFieldsTemplate">
    <ContentPresenter>
        <ContentPresenter.Style>
            <Style TargetType="ContentPresenter">
                <Setter Property="ContentTemplate" Value="{x:Null}"/>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding IsRequired}" Value="True">
                        <Setter Property="ContentTemplate" Value="{StaticResource MyFieldDisplayTemplate}" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </ContentPresenter.Style>
    </ContentPresenter>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)

简单地说

<DataTemplate x:Key="RequiredFieldsTemplate">
    <ContentPresenter ContentTemplate="{StaticResource MyFieldDisplayTemplate}" />
Run Code Online (Sandbox Code Playgroud)

工作正常 - 但我想要完成的是绑定到字段列表,但只显示必填字段.我不能只使用Visibility = collapsed,实例化中的所有自定义控件都有巨大的开销MyFieldDisplayTemplate.我的目标是让非必需字段在ItemsControl中具有完全不同(空)的控件模板.

有关如何设置此触发器的任何想法?

c# wpf xaml triggers .net-4.0

3
推荐指数
1
解决办法
4908
查看次数

标签 统计

wpf ×2

.net ×1

.net-4.0 ×1

c# ×1

contentcontrol ×1

contentpresenter ×1

triggers ×1

xaml ×1