Thứ Hai, 4 tháng 1, 2010

WPF: Cách sử dụng TypeConverter


Khi ta thêm một thuộc tính cho một đối tượng trong WPF. Trong khai báo đối tượng, khi gõ tên thuộc tính thì trình soạn thảo Visual studio sẽ liệt kê (Down list) những giá trị cho chọn.Để có thể làm được như trên thì ta sửa dụng lớp thuộc tính TypeConverter. Các bước thực hiện như sau:

1.       Tạo một lớp kế thừa từ TypeConvert, ví dụ muốn tạo danh sách giá trị là chuỗi ta có thể kế thừa từ StringConvert

    public class MyProConverter: StringConverter    {
        //Nạp chồng phương thức của TypeConvert
        public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext  context)        {
            return new StandardValuesCollection(new string[] {"Option 1", "Option 2", "Option 3"});
        }

        //Nạp chồng phương thức của TypeConvert
        public override bool GetStandardValuesSupported(ITypeDescriptorContext context)        {
            return true;
        }
    }

2.       Khai báo thuộc tính cho đối tượng control

    public class MyTextBox : TextBox
    {
        //Khao báo thuộc tính có liệt kê giá trị để chọn
        [TypeConverter(typeof(MyProConverter))]
        public string Option { get; set; }
    }

3.       Sử dụng thuộc tính mới của control

<Window x:Class="Test1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sc="clr-namespace:StringConverterTest;assembly=StringConverterTest"
    Title="Window1" Height="300" Width="300">
    <Grid>
        <StackPanel>
            <sc:MyTextBox Option="Option 1" />
        </StackPanel>
    </Grid>
</Window>


Lưu ý:

Control MyTextBox với Window (đối tượng sử dụng MyTextBox) phải
khác project với nhau.




Không có nhận xét nào:

Đăng nhận xét