none
定义“XAML”资源类 RRS feed

  • 问题

  • 1、XAML

    UserControl.Resources >
            <local:SeriesTemplateSelector x:Key="chartTemplateSelector">

                <local:SeriesTemplateSelector.SalesTemplate>
                    <DataTemplate >
                    </DataTemplate>
                </local:SeriesTemplateSelector.SalesTemplate>

    问题一:“XAML”为什么可以调用后台“.cs”类???     XAML和.cs之间有什么联系,为什么在资源中可以使用类???

    2、SeriesTemplateSelector类

        public class SeriesTemplateSelector : DataTemplateSelector
        {
            public DataTemplate SalesTemplate { get; set; }
            public DataTemplate MedianTemplate { get; set; }

            public override DataTemplate SelectTemplate(object item, DependencyObject container)

         问题二:为什么要重写“SelectTemplate”方法???      DependencyObject”的作用是什么???   什么容器???

            {

                if (item is SalesPerformance)
                {
                    SalesPerformance salesPerf = item as SalesPerformance;

                    if (salesPerf.SalesName == "Median")
                    {
                        return MedianTemplate;
                    }
                    else
                    {
                        return SalesTemplate;
                    }
                }

    问题三:“SalesPerformance”是实体集合,这里对模板进行了重写对吗???   如果用实体集进行重写模板,那岂不是一个实体集合就对应一个模板???

                // default
                return null;

            }

        } 

    3、DataTemplateSelector类

         public class DataTemplateSelector
        {

            public DataTemplateSelector()
            {
            }

            public virtual DataTemplate SelectTemplate(object item, DependencyObject container)
            {
                return null;
            }

    问题四:自定义模板为什么分为两个类???“SeriesTemplateSelector类”和“DataTemplateSelector类”有一个不就行了么???这样做有什么好处???

        }          

            

    Science and technology is my lover.

    2012年5月17日 6:44

答案

全部回复

  • XAML语言是定义界面元素本身的,而C#则是实现界面上各种消息响应函数的。比如,你点击一个按钮,那么对应的消息响应函数就可以用C#来完成;但是按钮本身的形状、颜色、背景、尺寸等等,则一般都是在XAML中定义的。在.cs文件中使用了C#中的partial关键字,将一个.xaml文件和一个.cs文件中相关的内容结合起来,形成一个类。也就是说,每一个.xaml文件中定义的xaml对象,实际上也可以看做一个C#中的类。

    DependencyObject 类表示一个参与 Silverlight 依赖项属性系统的对象。

    关于DependencyObject 类的详细信息,请参考:

    http://msdn.microsoft.com/zh-cn/library/system.windows.dependencyobject(v=vs.95).aspx

    Silverlight里并没有DataTemplateSelector类,SeriesTemplateSelector也是自定义的依赖属性,请参考下文中的例子:

    http://blog.thekieners.com/2010/02/07/databinding-multi-series-charts/

    2012年5月18日 7:25
    版主
  • XAML语言是定义界面元素本身的,而C#则是实现界面上各种消息响应函数的。比如,你点击一个按钮,那么对应的消息响应函数就可以用C#来完成;但是按钮本身的形状、颜色、背景、尺寸等等,则一般都是在XAML中定义的。在.cs文件中使用了C#中的partial关键字,将一个.xaml文件和一个.cs文件中相关的内容结合起来,形成一个类。也就是说,每一个.xaml文件中定义的xaml对象,实际上也可以看做一个C#中的类。

    DependencyObject 类表示一个参与 Silverlight 依赖项属性系统的对象。

    关于DependencyObject 类的详细信息,请参考:

    http://msdn.microsoft.com/zh-cn/library/system.windows.dependencyobject(v=vs.95).aspx

    Silverlight里并没有DataTemplateSelector类,SeriesTemplateSelector也是自定义的依赖属性,请参考下文中的例子:

    http://blog.thekieners.com/2010/02/07/databinding-multi-series-charts/

     Silverlight 依赖项属性系统”指什么呢???

    Science and technology is my lover.

    2012年5月21日 2:41
  • Silverlight 提供了一组服务,这些服务可用于扩展 CLR 属性的功能。这些服务通常统称为 Silverlight 属性系统。由 Silverlight 属性系统支持的属性称为依赖项属性。

    详细信息请参考:

    http://msdn.microsoft.com/zh-cn/library/cc221408(v=vs.95).aspx
    2012年5月21日 2:57
    版主