转载:Difference between Control Template and DataTemplate in WPF

Typically a control is rendered for its own sake, and doesn’t reflect underlying data. For example, a Button wouldn’t be bound to a business object – it’s there purely so it can be clicked on. A ContentControl or ListBox, however, generally appear so that they can present data for the user.

A DataTemplate, therefore, is used to provide visual structure for underlying data, while a ControlTemplate has nothing to do with underlying data and simply provides visual layout for the control itself.

A ControlTemplate will generally only contain TemplateBinding expressions, binding back to the properties on the control itself, while a DataTemplate will contain standard Binding expressions, binding to the properties of its DataContext (the business/domain object or view model).

来源:这里

Style里创建的UI元素都是共享的

前提是当Style在一个界面上被多次使用(比如MenuItem的Style,如果ItemContainerStyle来设置,使用的是同一个Style,被用到多个menuItem的情况)

就会出现:Specified element is already the logical child of another element. Disconnect it first.

如果错误被吃掉了,界面上就会出现没有被用上Style的元素。

比如

<Style x:Key="m1" TargetType="{x:Type MenuItem}"? BasedOn="{StaticResource {x:Type MenuItem}}" >
?????????? <Setter? Property="Header">
???????????????? <Setter.Value>

??????????????????????? <TextBlock………>

?????????????????? </Setter.Value>
?????????? </Setter>

?????? </Style>

类似这篇文章里提到的现象。解决方案是用x困惑hared = false. 见msdn的解释。

?

<Label x:Shared="false" x:Key="l" Content="{Binding}">
????? </Label>
????? <Style x:Key="m1" TargetType="{x:Type MenuItem}"? BasedOn="{StaticResource {x:Type MenuItem}}" >
????????? <Setter? Property="Header" Value="{StaticResource l}">??????????????
????????? </Setter>
????? </Style>

亚特兰大见闻4

最后写一下景点,景点本身虽然不错,不过网上应该有无数游记,只当多一篇吧。多图杀猫。。。

市中心的奥林匹克公园,当天有人在搞演出活动,类似我们的社区组织的表演吧。估计很多人是为了出来social的。

亚特兰大见闻4 - yww325 - 程序员

 

亚特兰大见闻4 - yww325 - 程序员

 

亚特兰大见闻4 - yww325 - 程序员

 

CNN中心:

亚特兰大见闻4 - yww325 - 程序员

 

可口可乐公司,这也是个tour,票价要30多美元好像,记不太清了。进去累计二三十人就有个导游来带着参观。参观前导游先统计一下,有多少人是本州的啊(乔治亚州),齐刷刷的都举了,就除了我们几个。可口可乐总部在亚特兰大,算是亚特兰大的骄傲。所以即使在美国国内也还是有不少人来看的。
亚特兰大见闻4 - yww325 - 程序员

 

亚特兰大见闻4 - yww325 - 程序员

 

亚特兰大见闻4 - yww325 - 程序员

 

亚特兰大见闻4 - yww325 - 程序员

 

在五六十年代,可口可乐就是通过这种汽车到处拉着卖。

亚特兰大见闻4 - yww325 - 程序员

 

各个年代的自动贩卖机。在美国,人力资源太贵,卖饮料这种事很早就是机器干。

亚特兰大见闻4 - yww325 - 程序员
下面是水族馆,也在市中心地带,都是步行范围内。
水底长廊,抬头可以看见各种大鱼 
亚特兰大见闻4 - yww325 - 程序员

 

亚特兰大见闻4 - yww325 - 程序员

 

这条应该叫鳐鱼吧(到这里才发现,不懂的英语单词太多), 真的很大,一下把几个人都盖住了。

亚特兰大见闻4 - yww325 - 程序员

 

远看也很壮观。

亚特兰大见闻4 - yww325 - 程序员

 

还可以在下面看海豚,正好抓拍到一张它在大便的。。。

亚特兰大见闻4 - yww325 - 程序员

 

漂亮的海星:
亚特兰大见闻4 - yww325 - 程序员

 水獭:

亚特兰大见闻4 - yww325 - 程序员

 

企鹅,小朋友钻到地下通道,然后可以从后面的透明管道里伸出头来近距离观看。

亚特兰大见闻4 - yww325 - 程序员

 

美国小朋友太幸福,还可以伸手摸小的鳐鱼,工作人员会协助抓住一只让你摸。小鳐鱼们很听话地排队在水池里绕圈等着摸,估计是工作人员在的地方有投食吧。
亚特兰大见闻4 - yww325 - 程序员

 

这个鱼太漂亮,贴着拍了一张。

亚特兰大见闻4 - yww325 - 程序员

 

白鳄鱼

亚特兰大见闻4 - yww325 - 程序员

 

某种水母(jellyfish)吧

亚特兰大见闻4 - yww325 - 程序员

 

很大的水族箱:

亚特兰大见闻4 - yww325 - 程序员

 总之,水族馆也是30-40美元,也就是200人民币的样子,真的是超值啊。如果亚特兰大只能去一个景点,那就是水族馆了。

好客的老外同事还带我们去参观了一下亚特兰大历史博物馆,亚特兰大作为南北战争时南方的重镇,有很多南方军的武器,制服等保留着。这里也是Gone with the wind发生的地方。不过这片子我从来没看完过,所以也没啥感觉。
亚特兰大见闻4 - yww325 - 程序员
博物馆范围内还有一个老房子,里面有工作人员穿着几个世纪前的服饰,给大家讲解传统的美国南方家庭的生活习惯和布置等等。

 亚特兰大见闻4 - yww325 - 程序员

还有一个叫Swan House的地方,是当地有钱人的故居。 

亚特兰大见闻4 - yww325 - 程序员

 

亚特兰大见闻4 - yww325 - 程序员

 一只幸福的猫,衣食无忧,又自由自在到处跑,和我们小区里的流浪猫或者家里关着样的猫命运不一样啊。能放养又能吃到猫粮,实在太幸福了。

亚特兰大见闻4 - yww325 - 程序员
Stone Mountain Park,也就是石头山。在城东开车一个小时不到的路程,幸好有手机导航软件igo,普通话语音,虽然比不上凯立德,但是也可以了。
开车到门口,看门的老头听说我们从中国来,就开始不管后面排队的车跟我们唠嗑起来。10美元门票加停车费,给了张drive map。爬山一会就到顶了,山顶风很大。其他没啥好说的。
亚特兰大见闻4 - yww325 - 程序员

 

亚特兰大见闻4 - yww325 - 程序员

 

亚特兰大见闻4 - yww325 - 程序员

 

亚特兰大见闻4 - yww325 - 程序员

 

亚特兰大见闻4 - yww325 - 程序员

 

接下来看了场NBA, 网上订票,工行网银支付(不支持支付宝),然后把票打印出来就好了。票价从10多美元到几百美元都有。主要是体验一下气氛,就买了30美元的票,位置比较远。一场普通的常规赛,两支中下游球队,没啥看头。当然如果有钱到场地边上的位置看一定会效果不同。
NBA就是个消费娱乐场所,体育馆里座位出口外围了一圈的商店,主要是吃的店,价格都比较贵。不划算。安检比较严格,不允许带饮料进去。
中场还有各种表演,包括一场小朋友的篮球赛,虽然感觉他们把球扔到篮筐的高度都很费劲,但是打得有板有眼,假动作,篮板,挡拆,绝对完爆中国的同龄小朋友啊。这种小学生的差距,才是中美篮球的真正差距。
亚特兰大见闻4 - yww325 - 程序员

 

 

亚特兰大见闻4 - yww325 - 程序员

 亚特兰大见闻4 - yww325 - 程序员