Silverlight表格綁定中的一點細節處理

Silverlight表格綁定中的一點細節處理

1. 如何設置單元格的對齊方式

    <UserControl.Resources>
        <Style x:Key="AlignCenter" TargetType="data:DataGridCell">
            <Setter Property="HorizontalContentAlignment" Value="Right" />
        </Style>
    </UserControl.Resources>

首先設置如上樣式, 然後在Grid列中指定如下屬性:

<data:DataGridTextColumn CellStyle="{StaticResource AlignCenter}"/>

2. 如何綁定時格式化. 比如取成百分比, 截斷字符等.

先聲明一個轉換類.實現IValueConverter接口.

public class ToPercentConverter : IValueConverter
    {
        #region IValueConverter Members

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            double valueDouble;
            if (double.TryParse(value.ToString(), out valueDouble))
                return Math.Round(valueDouble, 2).ToString("#0.00") + "%";
            else
                return "0.00%";
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return double.Parse(value.ToString().Replace("%", ""));
        }

        #endregion
    }

另外發現個問題, Ojbect value 傳入值是0的時候, (double)value, 居然回拋異常, 強制轉換失敗, 何解? 知道請回復一句,謝謝.

所以寫成了TryParse的方式.

之後在使用時, 先在Xaml中聲明類.

   <UserControl.Resources>
        <Bingosoft_CommonLib_SL:ToPercentConverter x:Key="ToPercentConverter"/>
    </UserControl.Resources>

在DataGrid綁定時:

<data:DataGridTextColumn  Binding="{Binding theRate, Converter={StaticResource ToPercentConverter}}"/>

就實現自定義格式化了, 以前Asp.net中一個Eval("data","formate")就搞定的, 如今這麼麻煩, 有更簡單的方法忘告知.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章