2010-07-27 2 views
1

Я пытаюсь предоставить простой способ для наших пользователей выбрать желаемый способ доставки (например, ИБП), не зная, что это соответствует ShipmentMethodID. Есть три ключевых аспекта каждого shipmentmethod, что однозначно идентифицировать его:Использование взаимосвязанных списков для представления доступных комбинаций в Windows Form/Control

  1. Courier (например: UPS, FedEx, OurTruck, необходимо определить)
  2. Service (т.е. Ground, 2Day10am, необходимо определить)
  3. Billing (то есть: грузоотправитель, третья партия, Подлежит определению)

то, что я хотел бы, чтобы иметь ListBox для каждой из этих частей, так что пользователь может установить каждую часть по отдельности и содержание двух других списки будут меняться динамически.

Возьмем, например, следующие доступные способы доставки:

| SMID | COURIER | SERVICE | BILLING | 
+=============================================+ 
    ?-???-?? TBD  TBD   TBD 
    ?-???-SH TBD  TBD   Shipper 
    ?-???-3P TBD  TBD   3rdParty 
    ?-D55-?? TBD  Ground  TBD 
    ?-D55-SH TBD  Ground  Shipper 
    ?-D55-3P TBD  Ground  3rdParty 
    U-???-?? UPS  TBD   TBD 
    U-???-SH UPS  TBD   Shipper 
    U-???-3P UPS  TBD   3rdParty 
    U-D55-?? UPS  Ground  TBD 
    U-D55-SH UPS  Ground  Shipper 
    U-D55-3P UPS  Ground  3rdParty 
    U-D2A-?? UPS  2Day10am TBD 
    U-D2A-SH UPS  2Day10am Shipper 
    U-D2A-3P UPS  2Day10am 3rdParty 
    F-???-?? FedEx  TBD   TBD 
    F-???-SH FedEx  TBD   Shipper 
    F-???-3P FedEx  TBD   3rdParty 
    F-D55-?? FedEx  Ground  TBD 
    F-D55-SH FedEx  Ground  Shipper 
    F-D55-3P FedEx  Ground  3rdParty 
    F-D35-?? FedEx  3DayEOD  TBD 
    F-D35-SH FedEx  3DayEOD  Shipper 
    F-D35-3P FedEx  3DayEOD  3rdParty 
    O-???-SH OurTruck TBD   Shipper 
    O-D55-SH OurTruck Ground  Shipper 
    O-INT-SH OurTruck Internal Shipper 

Если пользователь должны были указать Courier, скажем, к ИБП, то содержимое службы ListBox должен быть обновлен, чтобы показать, что, ТПО, Ground и 2Day10am доступны для этого курьера. Аналогично, в биллинге ListBox должны быть варианты для TBD, Shipper и 3rd Party. На самом деле, я бы все же смог отображать те службы, которые НЕ доступны для ИБП, но они неактивны, поэтому пользователь может сказать, что эти службы (в данном случае «3DayEOD» и «Internal») недоступны для их выбранную в настоящий момент услугу, но все еще имеют возможность ее выбирать. Если User DID выбирает одну из этих серых служб, то содержимое Courier ListBox будет соответствующим образом изменяться (ИБП больше не будет выбран, и TBD, вероятно, будет выбран вместо него).

Надеюсь, я достаточно ясно понимаю, чего я пытаюсь сделать здесь. Любой вход очень приветствуется!

ответ

1

Это неправильный дизайн пользовательского интерфейса. Для таких вариантов выбора требуются радиокнопки. Вы можете отключить или скрыть выбор в другом групповом поле, если они недоступны из-за более раннего выбора.

+0

hmmm ... Кажется, я понимаю, почему вы чувствуете, что это неуместный дизайн пользовательского интерфейса, но я по-прежнему чувствую, что моя концепция может быть гораздо удобнее для пользователя (а также компактна и мощна), чем просто использовать радиокнопочный подход. предлагают. –

+0

Вы, конечно, имеете право полностью игнорировать советы незнакомца в Интернете. Ваш предложенный пользовательский интерфейс, однако, настолько полностью нестандартен, что вы действительно должны представить * оба подхода к своему клиенту (или коллегам), чтобы получить второе мнение. –

+0

.. но ... но ... я не хочу их спрашивать! Они, вероятно, в конечном итоге хотят сделать это вместо этого! :п –

Смежные вопросы