使用相互关联的列表框表示Windows窗体/控件中的可用组合

时间:2010-07-27 19:54:24

标签: .net winforms data-binding controls

我正在尝试为用户提供一种简单的方法来选择所需的装运方法(即:UPS地面),而无需知道相应的ShipmentMethodID。每种运输方法都有三个关键方面可以唯一识别它:

  1. Courier(即:UPS,FedEx,OurTruck,待定)
  2. 服务(即:地面,2Day10am,待定)
  3. 结算(即:托运人,第三方,待定)
  4. 我想要的是为每个部分设置一个列表框,以便用户可以单独设置每个部分,其他两个列表框的内容将动态更改。

    以下列可用货件方法为例:

    |   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。同样,Billing ListBox应该有TBD,Shipper和3rd Party的选项。实际上,我仍然希望能够显示那些不适用于UPS的服务,但是它们会变灰,因此用户可以告诉他们这些服务(在本例中为“3DayEOD”和“Internal”)不可用于他们当前选择的服务,但仍然有能力选择它。如果用户DID选择其中一个灰显的服务,那么Courier ListBox的内容将相应地改变(UPS将不再被选中,而TBD可能会被选中)。

    我希望我能够清楚地知道我要在这里完成的事情。非常感谢任何输入!

1 个答案:

答案 0 :(得分:1)

这不适合用户界面设计。提出这样的选择需要单选按钮。如果由于之前的选择而无法使用,则可以禁用或隐藏另一个组框中的选项。