2011-01-20 40 views
7

Tôi đang bắt đầu thiết kế sơ bộ cho một ứng dụng có mục đích chung được sử dụng trong tổ chức của tôi. Chương trình cần phải được cả hai chung chung và chuyên ngành cùng một lúc. Nó sẽ chứa các widget phổ biến cho tất cả các luồng công việc và các widget độc đáo (hoặc các ràng buộc đầu vào) cho các luồng công việc riêng lẻ. Để tránh có 97 lần tắt khác nhau, chúng tôi đang lập kế hoạch xây dựng một tập hợp các lược đồ cho từng quy trình làm việc. Vào thời gian chạy, người dùng sẽ chọn lược đồ của họ từ máy chủ và GUI sẽ ném lên các widget thích hợp cho luồng công việc của họ.Giao diện được tạo động

Đây là ứng dụng C# sẽ chạy trong .Net và có thể là Mono. Điều đó có nghĩa là chúng tôi đang xem xét GTK #, ngoài XAML và MonoMac.

Chúng tôi đã xem xét việc viết XSLT cho bộ công cụ GUI mục tiêu của chúng tôi. Ví dụ:

  • XSLT Glade để chuyển đổi XSD thành libglade XML của chúng tôi.

  • XSLL XAMT để chuyển đổi XSD của chúng tôi thành XAML.

  • Định dạng XML chung cho các bộ công cụ khác không hỗ trợ cú pháp khai báo cho GUI.

  • Thư viện các lớp để đọc trực tiếp XSD và tạo GUI.

Vì vậy, câu hỏi của tôi là, điều này đã tồn tại chưa? Có một số công cụ dòng công việc hiện có cho GTK # và libglade hoặc WPF và XAML.

Trả lời

1

Nhìn vào System.Windows.DataTemplate có thể được WPF sử dụng tự động (xem thuộc tính DataType). Tôi nghĩ rằng bạn có thể trích xuất tất cả các khối giao diện người dùng, sẽ được sử dụng để tạo giao diện người dùng và sau đó triển khai ViewModels và DataTemplates thích hợp. Và kết quả giao diện người dùng sẽ là mô hình xem tổng hợp của các khối này.

+0

Tôi biết các mẫu. Mặc dù hữu ích, nó không giải quyết XSLT để truy cập XAML đúng. Nó không phải là đa nền tảng. Mẫu có thể rất tốt là một trong những công cụ tôi sử dụng nếu tôi kết thúc nhắm mục tiêu WPF thay vì GTK, nhưng sẽ phải có rất nhiều keo ở giữa. – Nate

0

Tôi đã làm điều tương tự bằng cách sử dụng XML. Những gì tôi đang làm là viết xuống bộ thuộc tính của từng điều khiển thành một tệp XML và sau đó đọc từ nó sau và tạo lại cửa sổ.

Some problems I met while doing so

Nhưng tôi đã có thể hoàn thành nó. Dù sao tôi đoán WPF là tốt hơn. Nhưng nếu bạn muốn một ý tưởng tôi đoán tôi đã đưa cho bạn. (Có thể không phải là ý tưởng tốt nhất)

Chúc may mắn

+0

Tôi không thực sự cố gắng lưu thuộc tính cho điều khiển. Nó tương tự. Nhưng tôi đang cố gắng để xác định một tập hợp các yếu tố đầu vào được yêu cầu cho một luồng công việc nhất định. Phần này sẽ đi vào một XSD. GUI lấy chính XSD hoặc XSLT cho nó. Sau đó nó tạo GUI dựa trên XML XAML hoặc libglade từ phép chuyển đổi XSLT hoặc bằng cách tạo GUI từ XSD. – Nate

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