日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

WP7 Toolkit ExpanderView 控件 介紹 02

系統 2029 0

這里來實現一個ListBox里面點擊某項后 展示出它的選中項更多的數據

這時使用ExpanderView 來實現會非常簡單

WP7 Toolkit ExpanderView 控件 介紹 02_第1張圖片

?

首先寫實體類:

      
      
      
        public
      
      
      
      
        class
      
      
         CustomPizza : INotifyPropertyChanged 
        
{
private bool isExpanded;
public string Image { get ; set ; }
public string Name { get ; set ; }
public DateTime DateAdded { get ; set ; }
public IList < PizzaOption > Options { get ; set ; }
public bool HasNoOptions
{
get { return this .Options == null || this .Options.Count == 0 ; }
}
public bool IsExpanded
{
get { return this .isExpanded; }
set
{
if ( this .isExpanded != value)
{
this .isExpanded = value;
this .OnPropertyChanged( " IsExpanded " );
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged( string propertyName)
{
PropertyChangedEventHandler handler
= this .PropertyChanged;
if (handler != null )
{
handler(
this , new PropertyChangedEventArgs(propertyName));
}
}
}

public class PizzaOption
{
public string Name { get ; set ; }
}

創建Images文件夾并放入4張圖片

寫入數據

      
        public
      
      
         MainPage() 
        
{
List
< CustomPizza > customPizzas = new List < CustomPizza > ()
{
new CustomPizza()
{
Name
= " Custom Pizza 1 " ,
DateAdded
= new DateTime( 2010 , 7 , 8 ),
Image
= " Images/pizza1.png " ,
Options
= new List < PizzaOption >
{
new PizzaOption() { Name = " Ham " },
new PizzaOption() { Name = " Mushrooms " },
new PizzaOption() { Name = " Tomatoes " }
}
},
new CustomPizza()
{
Name
= " Custom Pizza 2 " ,
DateAdded
= new DateTime( 2011 , 2 , 10 ),
Image
= " Images/pizza2.png " ,
Options
= new List < PizzaOption >
{
new PizzaOption() { Name = " Ham " },
new PizzaOption() { Name = " Olives " },
new PizzaOption() { Name = " Mozzarella " }
}
},
new CustomPizza()
{
Name
= " Surprise Pizza " ,
Image
= null ,
DateAdded
= new DateTime( 2011 , 4 , 1 ),
Options
= null
},
new CustomPizza()
{
Name
= " Custom Pizza 3 " ,
Image
= " Images/pizza3.png " ,
DateAdded
= new DateTime( 2011 , 5 , 15 ),
Options
= new List < PizzaOption >
{
new PizzaOption() { Name = " Salami " },
new PizzaOption() { Name = " Mushrooms " },
new PizzaOption() { Name = " Onions " } }
},
new CustomPizza()
{
Name
= " Custom Pizza 4 " ,
Image
= " Images/pizza4.png " ,
DateAdded
= new DateTime( 2011 , 7 , 20 ),
Options
= new List < PizzaOption >
{
new PizzaOption() { Name = " Pepperoni " },
new PizzaOption() { Name = " Olives " },
new PizzaOption() { Name = " Mozzarella " }
}
},
};
// ...
}

?

下面寫前端頁面,及數據跟UI的綁定

前面頁面數據轉換器:(比如08/08/2011年,我們即可以自動轉換成文字"一個月以前")

      
        <
      
      
        phone:PhoneApplicationPage.Resources
      
      
        >
      
      
      
    
      
      
      
        <
      
      
        toolkit:RelativeTimeConverter 
      
      
        x:Key
      
      
        ="RelativeTimeConverter"
      
      
        />
      
      
      
    
      
      
      
        </
      
      
        phone:PhoneApplicationPage.Resources
      
      
        >
      
      
      
    

頭部模板:

      
        <
      
      
        phone:PhoneApplicationPage.Resources
      
      
        >
      
    
      
      
      
      
      
        <
      
      
        DataTemplate 
      
      
        x:Key
      
      
        ="CustomHeaderTemplate"
      
      
        >
      
      
      
    
      
      
      
        <
      
      
        TextBlock 
      
      
        Text
      
      
        ="
      
      
        {Binding Name}
      
      
        "
      
      
         FontSize
      
      
        ="
      
      
        {StaticResource PhoneFontSizeExtraLarge}
      
      
        "
      
      
         FontFamily
      
      
        ="
      
      
        {StaticResource PhoneFontFamilySemiLight}
      
      
        "
      
      
        />
      
      
      
    
      
      
      
        </
      
      
        DataTemplate
      
      
        >
      
      
      
    
      
      
      
        </
      
      
        phone:PhoneApplicationPage.Resources
      
      
        >
      
      
      
    

下拉擴展列表模板

      
        <
      
      
        phone:PhoneApplicationPage.Resources
      
      
        >
      
      
      
    
      
      
      
        <
      
      
        DataTemplate 
      
      
        x:Key
      
      
        ="CustomExpanderTemplate"
      
      
        >
      
      
      
    
      
      
      
        <
      
      
        StackPanel 
      
      
        Orientation
      
      
        ="Horizontal"
      
      
        >
      
      
      
    
      
      
      
        <
      
      
        Image 
      
      
        Source
      
      
        ="
      
      
        {Binding Image}
      
      
        "
      
      
         Stretch
      
      
        ="None"
      
      
        />
      
      
      
    
      
      
      
        <
      
      
        TextBlock 
      
      
        Foreground
      
      
        ="
      
      
        {StaticResource PhoneSubtleBrush}
      
      
        "
      
      
           FontSize
      
      
        ="
      
      
        {StaticResource PhoneFontSizeNormal}
      
      
        "
      
      
         VerticalAlignment
      
      
        ="Center"
      
      
        >
      
      
      
    
      
      
      
        <
      
      
        TextBlock.Text
      
      
        >
      
      
      
    
      
      
      
        <
      
      
        Binding 
      
      
        Path
      
      
        ="DateAdded"
      
      
         Converter
      
      
        ="
      
      
        {StaticResource RelativeTimeConverter}
      
      
        "
      
      
         StringFormat
      
      
        ="Date added: {0}"
      
      
      
      
        />
      
      
      
    
      
      
      
        </
      
      
        TextBlock.Text
      
      
        >
      
      
      
    
      
      
      
        </
      
      
        TextBlock
      
      
        >
      
      
      
    
      
      
      
        </
      
      
        StackPanel
      
      
        >
      
      
      
    
      
      
      
        </
      
      
        DataTemplate
      
      
        >
      
    
      
      
      
      
      
        </
      
      
        phone:PhoneApplicationPage.Resources
      
      
        >
      
      
      
    

每ListBox的Item 模板

      
        <
      
      
        phone:PhoneApplicationPage.Resources
      
      
        >
      
      
      
    
      
      
      
        <
      
      
        DataTemplate 
      
      
        x:Key
      
      
        ="CustomItemTemplate"
      
      
        >
      
      
      
    
      
      
      
        <
      
      
        TextBlock 
      
      
        Text
      
      
        ="
      
      
        {Binding Name}
      
      
        "
      
      
      
      
        />
      
      
      
    
      
      
      
        </
      
      
        DataTemplate
      
      
        >
      
      
      
    
      
      
      
        </
      
      
        phone:PhoneApplicationPage.Resources
      
      
        >
      
      
      
    

有沒下拉列表時顯示的模板

      
        <
      
      
        phone:PhoneApplicationPage.Resources
      
      
        >
      
      
      
    
      
      
      
        <
      
      
        DataTemplate 
      
      
        x:Key
      
      
        ="CustomNonExpandableHeaderTemplate"
      
      
        >
      
      
      
    
      
      
      
        <
      
      
        StackPanel 
      
      
        Orientation
      
      
        ="Vertical"
      
      
        >
      
      
      
    
      
      
      
        <
      
      
        TextBlock 
      
      
        Text
      
      
        ="
      
      
        {Binding Name}
      
      
        "
      
      
         FontSize
      
      
        ="
      
      
        {StaticResource PhoneFontSizeExtraLarge}
      
      
        "
      
      
         FontFamily
      
      
        ="
      
      
        {StaticResource PhoneFontFamilySemiLight}
      
      
        "
      
      
        />
      
      
      
    
      
      
      
        <
      
      
        TextBlock 
      
      
        Foreground
      
      
        ="
      
      
        {StaticResource PhoneSubtleBrush}
      
      
        "
      
      
         FontSize
      
      
        ="
      
      
        {StaticResource PhoneFontSizeNormal}
      
      
        "
      
      
        >
      
      
      
    
      
      
      
        <
      
      
        TextBlock.Text
      
      
        >
      
      
      
    
      
      
      
        <
      
      
        Binding 
      
      
        Path
      
      
        ="DateAdded"
      
      
         Converter
      
      
        ="
      
      
        {StaticResource RelativeTimeConverter}
      
      
        "
      
      
         StringFormat
      
      
        ="Date added: {0}"
      
      
      
      
        />
      
      
      
    
      
      
      
        </
      
      
        TextBlock.Text
      
      
        >
      
      
      
    
      
      
      
        </
      
      
        TextBlock
      
      
        >
      
      
      
    
      
      
      
        <
      
      
        TextBlock 
      
      
        Text
      
      
        ="The ingredients will be a surpise!"
      
      
          Foreground
      
      
        ="
      
      
        {StaticResource PhoneSubtleBrush}
      
      
        "
      
      
        FontSize
      
      
        ="
      
      
        {StaticResource PhoneFontSizeNormal}
      
      
        "
      
      
      
      
        />
      
      
      
    
      
      
      
        </
      
      
        StackPanel
      
      
        >
      
      
      
    
      
      
      
        </
      
      
        DataTemplate
      
      
        >
      
      
      
    
      
      
      
        </
      
      
        phone:PhoneApplicationPage.Resources
      
      
        >
      
      
      
    

這時添加一個ListBox

      
        <
      
      
        ListBox 
      
      
        Grid.Row
      
      
        ="0"
      
      
         x:Name
      
      
        ="listBox"
      
      
        >
      
    
      
      
      
      
      
        <
      
      
        ListBox.ItemContainerStyle
      
      
        >
      
    
      
      
      
      
      
        <
      
      
        Style 
      
      
        TargetType
      
      
        ="ListBoxItem"
      
      
        >
      
    
      
      
      
      
      
        <
      
      
        Setter 
      
      
        Property
      
      
        ="HorizontalContentAlignment"
      
      
         Value
      
      
        ="Stretch"
      
      
        />
      
    
      
      
      
      
      
        </
      
      
        Style
      
      
        >
      
      
      
    
      
      
      
        </
      
      
        ListBox.ItemContainerStyle
      
      
        >
      
    
      
      
      
      
      
        <
      
      
        ListBox.ItemsPanel
      
      
        >
      
    
      
      
      
      
      
        <
      
      
        ItemsPanelTemplate
      
      
        >
      
    
      
      
      
      
      
        <
      
      
        StackPanel
      
      
        />
      
    
      
      
      
      
      
        </
      
      
        ItemsPanelTemplate
      
      
        >
      
    
      
      
      
      
      
        </
      
      
        ListBox.ItemsPanel
      
      
        >
      
    
      
      
      
      
      
        <
      
      
        ListBox.ItemTemplate
      
      
        >
      
      
      
    
      
      
      
        <
      
      
        DataTemplate
      
      
        >
      
    
      
      
      
      
      
        <
      
      
        toolkit:ExpanderView 
      
      
        Header
      
      
        ="
      
      
        {Binding}
      
      
        "
      
      
           Expander
      
      
        ="
      
      
        {Binding}
      
      
        "
      
      
         ItemsSource
      
      
        ="
      
      
        {Binding Options}
      
      
        "
      
      
         NonExpandableHeader
      
      
        ="
      
      
        {Binding}
      
      
        "
      
      
        IsNonExpandable
      
      
        ="
      
      
        {Binding HasNoOptions}
      
      
        "
      
      
          IsExpanded
      
      
        ="
      
      
        {Binding IsExpanded, Mode=TwoWay}
      
      
        "
      
      
        HeaderTemplate
      
      
        ="
      
      
        {StaticResource CustomHeaderTemplate}
      
      
        "
      
      
         ExpanderTemplate
      
      
        ="
      
      
        {StaticResource CustomExpanderTemplate}
      
      
        "
      
      
        ItemTemplate
      
      
        ="
      
      
        {StaticResource CustomItemTemplate}
      
      
        "
      
      
        NonExpandableHeaderTemplate
      
      
        ="
      
      
        {StaticResource CustomNonExpandableHeaderTemplate}
      
      
        "
      
      
        />
      
    
      
      
      
      
      
        </
      
      
        DataTemplate
      
      
        >
      
      
      
    
      
      
      
        </
      
      
        ListBox.ItemTemplate
      
      
        >
      
    
      
      
      
      
      
        </
      
      
        ListBox
      
      
        >
      
      
      
    

最后設置ListBox的ItemSource : this .listBox.ItemsSource = customPizzas;

WP7 Toolkit ExpanderView 控件 介紹 02


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 突泉县| 邵阳市| 梅州市| 项城市| 东港市| 二连浩特市| 东丰县| 静安区| 砀山县| 霍林郭勒市| 唐山市| 吉木乃县| 泾阳县| 盐源县| 达州市| 江门市| 桐庐县| 正蓝旗| 江山市| 咸阳市| 吐鲁番市| 赤水市| 房山区| 乐清市| 札达县| 磐安县| 金山区| 漳平市| 徐闻县| 龙里县| 新化县| 平凉市| 沁水县| 长泰县| 舟山市| 鲜城| 开阳县| 汉寿县| 亳州市| 广河县| 郁南县|