最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Silverlight DataGrid中無代碼設置開始與結束日期DatePicker的實現方法

 更新時間:2013年05月14日 11:16:12   作者:  
本篇文章是對Silverlight DataGrid中無代碼設置開始與結束日期DatePicker的實現方法進行了詳細的分析介紹,需要的朋友參考下

有時候會碰到一些需要設置開始日期和結束日期的需求,比如有很多商品,每件商品都有開始出售日期和結束出售日期的字段。如何使用DatePicker控件來滿足這些需求呢,下文將做解答:

1:新建SL4項目文件。新建Page頁面DatePickerDemo.xaml;

2:新建實體類Product,包含SellBegin,SellEnd 字段。代碼如下:

復制代碼 代碼如下:

public class Product
{
    public DateTime SellBegin { get; set; }
    public DateTime SellEnd { get; set; }
}

3:由于有多個Product,所以使用DataGrid顯示數據,從工具箱中拖一個DataGrid到DatePickerDemo頁面。刪除多余的代碼,最后的結果如下:
復制代碼 代碼如下:

<navigation:Page x:Class="SLStudy.DatePickerDemo"
           xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
           xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
           xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
           xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
           mc:Ignorable="d"
           xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
           d:DesignWidth="640" d:DesignHeight="480"
           Title="DatePickerDemo Page" Loaded="Page_Loaded"
           xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk">
    <Grid x:Name="LayoutRoot">
        <sdk:DataGrid Name="dataGrid1">
        </sdk:DataGrid>
    </Grid>
</navigation:Page>

后臺CS代碼為:

dataGrid1.ItemsSource=new List<Product>(){...};

運行實例:結果如下:

clip_image002

當然如果日期格式是這樣的,那用戶估計會找你麻煩了。默認的日期格式應該”2010/05/05”。

為什么前臺xaml代碼僅僅這樣寫,就可以成功的綁定數據呢?

<sdk:DataGrid Name="dataGrid1"> </sdk:DataGrid>

原因在于dataGrid1的AutoGenerateColumns 屬性默認是true,為了實現自定義,在這里將它設置為false,并手動添加Column。代碼如下:

復制代碼 代碼如下:

<sdk:DataGrid Name="dataGrid1" AutoGenerateColumns="False">
    <sdk:DataGrid.Columns>
        <sdk:DataGridTextColumn Header="起始日期" Binding="{Binding SellBegin}" />
        <sdk:DataGridTextColumn Header="結束日期" Binding="{Binding SellEnd}" />
    </sdk:DataGrid.Columns>
</sdk:DataGrid>

運行,結果如下:

clip_image004

但是編輯界面是一個文本框,用戶希望的是一個日期選擇框,所以需要在單元格編輯的時候,使用DataPicker。

所以需要將<sdk:DataGridTextColumn Header="起始日期" Binding="{Binding SellBegin}" />

修改為使用DataGridTemplateColumn ,代碼如下:

復制代碼 代碼如下:

<sdk:DataGridTemplateColumn Header="起始日期">

    <sdk:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding SellBegin}" />
        </DataTemplate>
    </sdk:DataGridTemplateColumn.CellTemplate>

    <sdk:DataGridTemplateColumn.CellEditingTemplate>
        <DataTemplate>
            <my:DatePicker SelectedDate="{Binding SellBegin}" />
        </DataTemplate>
    </sdk:DataGridTemplateColumn.CellEditingTemplate>

</sdk:DataGridTemplateColumn>

運行效果如下:

clip_image006

通過運行發(fā)現,雖然選擇了日期,但是起始日期的值并沒有變化。為什么?

.......

原來雖然設置了SelectedDate的Binding,但是沒有設置Binding的模式(Mode).

于是將DataTemplete中的DatePicker修改為

<my:DatePicker SelectedDate="{Binding SellBegin,Mode=TwoWay}" />

Mode有三種:

OneWay:單向綁定,數據源更改會導致控件的值變化。

OneTime:只綁定一次。

TwoWay:雙向綁定,你變我變。

運行后發(fā)現值變化了。

clip_image008

雖然值變化了,但是可以看到起始日期明顯大于結束日期。

查看DatePicker的各個屬性,看到有

DisplayDateStart 和 DisplayDateEnd 屬性。

所以我們將起始日期的DisplayDateEnd屬性綁定到SellEnd 字段上。結果如下:

<my:DatePicker SelectedDate="{Binding SellBegin,Mode=TwoWay}"

DisplayDateEnd="{Binding SellEnd}"/>

運行結果如下:

image

好了,剩下最后一步了,就是設置顯示的格式了。

第一個要明確的是,我們設置格式的對象是CellTemplete中的TextBlock對象,而不是CellEditingTemplete對象中的DatePicker對象,因為用來顯示的是TextBlock對象,而編輯的是DatePicker對象。

查看Binding 的屬性,發(fā)現有StringFormat屬性,代表了格式化字符串。于是修改代碼為:

<TextBlock Text="{Binding SellBegin, StringFormat=yyyy-MM-dd}" />

運行,結果如下:

image

修改結束日期,最后代碼如下:

復制代碼 代碼如下:

<sdk:DataGrid Name="dataGrid1" AutoGenerateColumns="False">
    <sdk:DataGrid.Columns>

        <sdk:DataGridTemplateColumn Header="起始日期">
            <sdk:DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding SellBegin, StringFormat=yyyy-MM-dd}" />
                </DataTemplate>
            </sdk:DataGridTemplateColumn.CellTemplate>
            <sdk:DataGridTemplateColumn.CellEditingTemplate>
                <DataTemplate>
                    <my:DatePicker SelectedDate="{Binding SellBegin,Mode=TwoWay}"
DisplayDateEnd="{Binding SellEnd}"/>
                </DataTemplate>
            </sdk:DataGridTemplateColumn.CellEditingTemplate>
        </sdk:DataGridTemplateColumn>

        <sdk:DataGridTemplateColumn Header="結束日期">
            <sdk:DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding SellEnd, StringFormat=yyyy-MM-dd}" />
                </DataTemplate>
            </sdk:DataGridTemplateColumn.CellTemplate>
            <sdk:DataGridTemplateColumn.CellEditingTemplate>
                <DataTemplate>
                   <my:DatePicker SelectedDate="{Binding SellEnd,Mode=TwoWay}"
DisplayDateStart="{Binding SellBegin}"/>
                </DataTemplate>
            </sdk:DataGridTemplateColumn.CellEditingTemplate>
        </sdk:DataGridTemplateColumn>

    </sdk:DataGrid.Columns>
</sdk:DataGrid>

運行結果如下:

image

相關文章

  • Unity UGUI教程之實現滑頁效果

    Unity UGUI教程之實現滑頁效果

    使用UGUI提供的ScrollRect和ScrollBar組件實現基本滑動以及自己控制每次移動一頁來達到滑頁的效果。具體實現思路請參考下本教程
    2016-04-04
  • C#圖片處理如何生成縮略圖的實現

    C#圖片處理如何生成縮略圖的實現

    本文主要介紹了C#圖片處理如何生成縮略圖的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • C#如何打開選擇文件對話框和選擇目錄對話框

    C#如何打開選擇文件對話框和選擇目錄對話框

    這篇文章主要介紹了C#如何打開選擇文件對話框和選擇目錄對話框問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • C#使用iTextSharp從PDF文檔獲取內容的方法

    C#使用iTextSharp從PDF文檔獲取內容的方法

    這篇文章主要介紹了C#使用iTextSharp從PDF文檔獲取內容的方法,涉及C#基于iTextSharp操作pdf文件的相關技巧,需要的朋友可以參考下
    2015-06-06
  • Unity UGUI Button按鈕組件使用示例

    Unity UGUI Button按鈕組件使用示例

    這篇文章主要為大家介紹了Unity UGUI Button按鈕組件使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • C#生成本地配置文件的實現示例

    C#生成本地配置文件的實現示例

    本文將介紹如何使用C#語言生成本地配置文件,以便為應用程序提供靈活的配置選項,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-01-01
  • Path類 操作文件類的實例

    Path類 操作文件類的實例

    下面小編就為大家分享一篇Path類 操作文件類的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • C# 操作符之二 算數操作符

    C# 操作符之二 算數操作符

    算數操作符+,-,*,/,%,的用法和大多程序設計語言是相同的,%號的作用是整數除法中產生余數,而整數法會直接去掉小數部分,而不是四舍五入。
    2011-02-02
  • C#實現在Excel中添加篩選器并執(zhí)行篩選的操作

    C#實現在Excel中添加篩選器并執(zhí)行篩選的操作

    自動篩選器是 Excel 中的一個基本但極其有用的功能,它可以讓你根據特定的條件來自動隱藏和顯示你的數據,當有大量的數據需要處理時,這個功能可以幫你快速找到你需要的信息,下面將介紹如何使用免費.NET Excel庫在Excel中添加、應用和刪除自動篩選器,需要的朋友可以參考下
    2024-05-05
  • C#交換兩個變量值的幾種方法總結

    C#交換兩個變量值的幾種方法總結

    這篇文章介紹了C#交換兩個變量值的幾種方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10

最新評論

勐海县| 三门县| 建始县| 民和| 龙江县| 额敏县| 自治县| 柘城县| 吉水县| 北宁市| 林芝县| 无棣县| 扎赉特旗| 冀州市| 建水县| 锡林浩特市| 开江县| 寻乌县| 祁阳县| 定兴县| 丰县| 汽车| 泗阳县| 湄潭县| 抚宁县| 南靖县| 聂荣县| 四会市| 沂南县| 宝兴县| 安岳县| 宁明县| 琼海市| 玛纳斯县| 灵台县| 加查县| 西畴县| 吉木萨尔县| 长兴县| 新宾| 丁青县|