2013-05-06 42 views
9

Làm cách nào tôi có thể thêm định dạng cho ràng buộc, định dạng giá trị bị ràng buộc bằng string.Format hoặc một cái gì đó tương tự? Tôi thấy trong các chủ đề khác, rằng bạn có thể vượt qua một converterName.MvvMCross Ràng buộc với chuỗi định dạng

  • Trình chuyển đổi cho sự cố này có tồn tại không?
  • Tôi có thể xem danh sách các bộ chuyển đổi tiêu chuẩn của MvvMCross v3 ở đâu?

Tôi duyệt mã ngay, nhưng không thể tìm thấy thứ gì đó. Tôi biết rằng có thể xảy ra thông tin bị mất mà phá hủy hai cách ràng buộc, nhưng tôi chỉ muốn điều này để hiển thị các giá trị. Trường hợp cụ thể của tôi là ràng buộc của một ngày giờ.

bindings.Bind(purchaseDate).To(vm => vm.RegisteredDevice.PurchaseDate); 

mong muốn của tôi ví dụ .:

bindings.Bind(purchaseDate).To(vm => vm.RegisteredDevice.PurchaseDate).WithFormat("hh:mm"); 

Trả lời

17

Để làm điều này, bạn chỉ có thể tạo ra một StringFormatValueConverter và bạn có thể sử dụng nó là tham số là chuỗi định dạng để sử dụng.

nên mất khoảng 2 phút để viết ... ở đây, tôi sẽ chứng minh điều đó:

public class StringFormatValueConverter : MvxValueConverter 
{ 
    public override object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     if (value == null) 
      return null; 

     if (parameter == null) 
      return value; 

     var format = "{0:" + parameter.ToString() + "}"; 

     return string.Format(format, value); 
    } 
} 

sau đó

set.Bind(myLabel).To(vm => vm.TheDate).WithConversion("StringFormat", "HH:MM:ss"); 

1 phút 53 giây;)

+0

nhờ. Tôi chỉ muốn chắc chắn rằng không có trình chuyển đổi nào được triển khai. Viết công cụ chuyển đổi của riêng tôi sẽ là bước tiếp theo của tôi :) Bây giờ tôi có thể đánh bại thời gian của bạn ^^ Nhưng một câu hỏi vẫn mở: Tôi có thể xem danh sách các bộ chuyển đổi chuẩn của MvvMCross v3 ở đâu? –

+0

câu trả lời dễ dàng - hiện tại, trong ứng dụng tiêu chuẩn 'HotTuna' có ** không ** (một số có thể được thêm bằng plugin và một yêu cầu hiện đang được liên kết đa ngôn ngữ) – Stuart

+0

ahh ok, bây giờ tôi biết tại sao tôi không thể tìm một :) cảm ơn. –

Các vấn đề liên quan