2010-07-09 1 views
0

J'écris un "résolveur de problème" pour une application d'expédition.WPF passe le paramètre généré par les données à la méthode via XAML

L'application d'expédition imprime des étiquettes à l'aide d'un logiciel fourni par le service postal britannique Royal Mail. Le logiciel s'assure que les adresses sur les étiquettes sont correctes selon la base de données d'adresses valides de Royal Mail, il rend un code traçable en format alphanumérique et code à barres et il facture automatiquement notre entreprise pour le courrier sécurisé envoyé sans avoir à faire beaucoup de paperasse.

C'est la dernière "caractéristique" qui cause un problème. Si une étiquette est imprimée et non requise parce que: a) le client se trouve dans un pays étranger, nous ne posons pas de courrier ou b) deux commandes sont pour la même personne à la même adresse que nous voulons imprimer une étiquette dans le premier cas ou imprimer l'un des deux dans le dernier.

La campagne est facile. Si un client se trouve réellement dans un autre pays, vous ne l'incluez pas dans la liste des clients envoyés à l'application Royal Mail pour traitement (mais certains clients se laissent manipuler avec la molette de la souris et finissent par prétendre être des Emirats Arabes Unis ils sont vraiment de Banbury) le problème du «Code postal en double» est cependant beaucoup plus gênant. Au Royaume-Uni, deux personnes auront le même code postal si elles vivent dans la même rue. Donc, évidemment, si deux personnes dans la même rue veulent quelque chose, vous devez imprimer deux étiquettes. De même, si deux frères vivent à la même adresse, nous voulons nous assurer que les deux frères reçoivent leurs envois individuels (dans ce cas, le code postal, le numéro de la maison et le nom de famille correspondent tous). Cependant, si deux ordres existent à la même adresse pour Mr AN Other, alors MR Other ne devrait exiger qu'une seule étiquette et ses dépêches peuvent être combinées.

Croyez-le ou non, nous avons des cas où Mr AN D'autres commandes deux fois et M. Someother-Dude dans la même rue commande aussi quelque chose. Dans ce cas, le résolveur de problème, plutôt que d'avoir juste besoin d'ajuster un champ prédéfini à une autre valeur connue, doit laisser l'utilisateur décider du nombre d'étiquettes à imprimer. Pour modéliser ce scénario dans une interface utilisateur, j'ai créé une listbox avec un datatemplate dynamique qui permet soit d'inclure/de ne pas inclure les personnes à problèmes dans le pays, mais dans le cas de problèmes de Postcode, elle présente une listbox alignée horizontalement. devrait inclure toutes les commandes qui ont le même code postal.

donc simplement c'est aussi loin que j'ai avec ceci:

<DataTemplate x:Key="postcodeTemplate"> 
      <Grid> 
       <Grid.RowDefinitions> 
        <RowDefinition></RowDefinition> 
        <RowDefinition></RowDefinition> 
       </Grid.RowDefinitions> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition></ColumnDefinition> 
        <ColumnDefinition></ColumnDefinition> 
       </Grid.ColumnDefinitions> 
       <Label Grid.Row="0">This Order's Postcode matches the postcode of another order. Choose what to do.</Label> 
       <RadioButton>Send all.</RadioButton> 
       <RadioButton>Send this one only.</RadioButton> 
       <ListBox Grid.Row="0" Grid.Column="1" Grid.RowSpan="2"> 
        <ListBox.ItemsPanel> 
         <ItemsPanelTemplate> 
          <VirtualizingStackPanel 
           Orientation="Horizontal" 
           IsItemsHost="true" /> 
         </ItemsPanelTemplate> 
        </ListBox.ItemsPanel> 
       </ListBox> 
      </Grid> 
     </DataTemplate> 

Comment passer Je le code postal du client actuel (contenu dans une collection Observable) par une méthode qui renvoie une liste des clients au même code postal qui s'affichera alors dans la liste finale?

+0

Quelqu'un? Je ne pensais pas que ce serait un gros problème. – bert

Répondre

0

On dirait que je vais devoir réécrire complètement ma fenêtre en utilisant des méthodes plus old school ... comment irritant.

Questions connexes