【问题标题】:Is it possible to include Xaml resources in a ControlTemplate?是否可以在 ControlTemplate 中包含 Xaml 资源?
【发布时间】:2009-09-09 15:24:17
【问题描述】:

我正在开发一个 Silverlight 模板化控件(即,它派生自 Control,并且其外观在 generic.xaml 中实现为 ControlTemplate),并且在我的一个绑定中遇到了对 ValueConverter 的需求。通常我只会在使用的控件的资源中创建一个 ValueConverter 的实例,但我不知道如何使用 ControlTemplate 来做到这一点。如果可能,我想将此实现全部保留在 Xaml 中,但我想我可以覆盖 OnApplyTemplate 并使用转换器手动创建绑定。

【问题讨论】:

    标签: silverlight xaml resources controltemplate


    【解决方案1】:

    这在 Silverlight 3 中确实有效。您只需在控件模板中添加一个资源部分,并将 ValueConverter 添加到模板的资源中:

    <ControlTemplate TargetType="controls:MyControl">
        <Grid Margin="8,40,8,20" x:Name="peopleListContainer">        
            <Grid.Resources>
                <controls:MyValueConverter x:Key="converter" />
            </Grid.Resources>
            <!-- ....
    

    然而,ValueConverters 经常在控制模板中被误用。您可能想改用 TypeConverter。 Bryant Likes 写了一篇很好的文章讨论the difference between ValueConverter and TypeConverter in this scenario

    【讨论】:

      猜你喜欢
      • 2011-06-04
      • 1970-01-01
      • 2019-08-18
      • 2011-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-15
      相关资源
      最近更新 更多