簡體   English   中英

無法在Silverlight DataGrid列中應用字符串格式

[英]Unable to apply string formatting in Silverlight DataGrid column

我有一個數據網格。 其“項目”來源設置為“列表”。 我的問題是Iam無法應用字符串格式。 這是我嘗試過的格式。 我錯過了什么嗎? StringFormat ='MM / dd / yyyy'StringFormat = {0:dd-MMM-yyyy}

附加結果網格

                        <sdk:DataGridTemplateColumn   Header="Recieved Date" Width="Auto"  >
                            <sdk:DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock Text="{Binding Path=RecievedDate, StringFormat=\{0:dd-MMM-yyyy\} }" />
                                </DataTemplate>
                            </sdk:DataGridTemplateColumn.CellTemplate>
                            <sdk:DataGridTemplateColumn.CellEditingTemplate>
                                <DataTemplate>
                                    <sdk:DatePicker Name="dtpFinancialAndComplianceLog" Text="{Binding Path=RecievedDate,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
                                </DataTemplate>
                            </sdk:DataGridTemplateColumn.CellEditingTemplate>
                        </sdk:DataGridTemplateColumn>

如果我了解您要正確執行的操作,則有一個DataGrid列,您希望以某種格式顯示DateTime對象。 通常,DateTime對象將根據System.Threading.Thread.CurrentUICulture整理出自己的格式。

我知道將任何對象強制轉換為某種格式的最簡單方法是使用自定義IValueConverter:

namespace MyProject.Converters
{
    public class FormatConverter : IValueConverter
    {//Suitable only for read-only data

        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value == null)
                return string.Empty;
            if(string.IsNullOrEmpty(parameter.ToString()))
                return value.ToString();

            return string.Format(culture, parameter.ToString(), value);
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return null;
        }
    }
}

將名稱空間添加到您的xaml: xmlns:conv="clr-namespace:MyProject.Converters"並在控件的資源<conv:FormatConverter x:Key="Formatter" />聲明轉換器之后,您將需要綁定列的使用新的轉換器獲取數據:

<TextBlock Text="{Binding Path=RecievedDate, Converter={StaticResource Formatter}, ConverterParameter=\{0:dd-MMM-yyy\} }" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM