Использование взаимосвязанных списков для представления доступных комбинаций в Windows Form / Control - PullRequest
1 голос
/ 27 июля 2010

Я пытаюсь предоставить нашим пользователям простой способ выбрать желаемый способ доставки (т. Е. Заземление UPS) без необходимости знать его соответствующий ShipmentMethodID.Существует три ключевых аспекта каждого способа доставки, которые однозначно его идентифицируют:

  1. Курьер (т. Е. UPS, FedEx, OurTruck, подлежит определению)
  2. Сервис (т. Е. Наземный, 2Day10am,Подлежит определению)
  3. Биллинг (т. Е. Грузоотправитель, третье лицо, подлежит определению)

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

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

|   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,скажем UPS, тогда содержимое Service ListBox должно быть обновлено, чтобы показать, что TBD, Ground и 2Day10am доступны для этого курьера.Аналогично, список выставления счетов должен иметь опции для TBD, Грузоотправителя и третьей стороны.В действительности я хотел бы по-прежнему иметь возможность отображать те Сервисы, которые НЕ доступны для UPS, но они выделены серым цветом, чтобы пользователь мог сказать, что эти сервисы (в данном случае «3DayEOD» и «Внутренний») недоступны дляих в настоящее время выбранный сервис, но все еще есть возможность выбрать его.Если пользователь DID выберет одну из этих неактивных служб, то содержимое списка рассылки Courier будет соответствующим образом изменяться (UPS больше не будет выбираться, а TBD, вероятно, будет выбран вместо этого).

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

1 Ответ

1 голос
/ 28 июля 2010

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

...