2012-01-07 32 views
7

Có thể thực hiện các phép toán cơ bản như cộng, chia vv trong XAML không? Ví dụ, tôi muốn đặt chiều cao của một nút là {Binding ElementName=MW,Path=Height}/2.Hoạt động toán học cơ bản trong XAML

+1

Đó là mô hình chế độ xem của bạn. Làm toán của bạn ở đó. –

+0

Khi bạn đang sử dụng XAML, bạn muốn có một lớp giao dịch với sự tương tác giữa giao diện của bạn (GUI XAML) và mô hình "back end" của bạn. Đó là ViewModel của bạn. Tôi không biết bạn đang cố gắng làm gì chính xác vì vậy tôi không thể nói cho bạn biết làm thế nào để làm điều đó nhưng thông thường bạn sẽ có một tài sản trên ViewModel của bạn tính toán chiều cao mong muốn và sau đó liên kết với điều đó. Chính xác thì bạn đang làm gì? Có lẽ có một cách tốt hơn để đặt nó ra? –

+0

Vì vậy, bạn có 2 cột mà bạn muốn mỗi cột chiếm một nửa không gian của vùng chứa của chúng? Xin lỗi nếu tôi không hiểu - Tôi hiếm khi đặt chiều cao hoặc chiều rộng của bất kỳ thứ gì trực tiếp vì bình thường nó sẽ thay đổi kích thước để phù hợp với bất kỳ không gian nào của nó. –

Trả lời

1

Để trả lời câu hỏi của bạn: Không, nó không phải là có thể.

1

Lời khuyên của tôi là tạo một value converter và áp dụng chúng bằng cách sử dụng bindings, cho bất kỳ hoạt động toán học nào bạn muốn thực hiện. Chế độ xem chắc chắn không phải là nơi để thực hiện các phép toán, bạn muốn có mối quan ngại được phân tách và cô lập trong một lớp khác, để dễ dàng gỡ lỗi và duy trì.

1

Không thể sử dụng trình chuyển đổi hoặc mô hình chế độ xem thực hiện chuyển đổi cho bạn. Đối với bộ chuyển đổi chung, hãy xem ExpressionConverter trong dự án WPF Converters của tôi.

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