1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

C# - ListView dynamisch erstellen und ändern in Folge von ComboBox SelectedItem

Dieses Thema im Forum ".NET WPF & Silverlight" wurde erstellt von fdres0, 18. August 2014.

  1. fdres0

    fdres0 Grünschnabel

    Hallo Community,

    ich erstelle eine Listview mit ComboBox, TextBox, etc. die Inhalte werden an ein Dictionary gebunden. Bei Klick auf "+" Button wird ein neuer Eintrag und somit ein neues ListViewItem erzeugt (s. Anhang).
    Nun möchte ich, je nachdem was in der ComboBox ausgewählt wurde, die Visibility von den Objekten im ListViewItem ändern. Kann ich aber nicht, da ich keine Zugriff auf die Objekte habe. Kann mir da jemand weiterhelfen?

    Code (Text):
    1. public partial class Page2 : Page
    2.     {
    3.         List<string> listArt = new List<string>();
    4.         public Model.Bezahlung bezahlung = new Model.Bezahlung();
    5.  
    6.         public Page2()
    7.         {
    8.             listArt.Add("Stechkarte");
    9.             listArt.Add("Bar");
    10.             listArt.Add("Kostenstelle");
    11.             listArt.Add("Gutschein");
    12.  
    13.             Resources["BezahlartenList"] = listArt;
    14.             Resources["Bezahlungen"] = bezahlung.bezahlPositionDict;
    15.             InitializeComponent();
    16.         }
    17.  
    18.         private void btnArtHinzufügen_Click(object sender, RoutedEventArgs e)
    19.         {
    20.             AddBezahlart();
    21.         }
    22.      
    23.         public void AddBezahlart()
    24.         {
    25.             string grund = "", bezahlart = "Stechkarte";
    26.             int id = 0;
    27.             double betrag = 0.0;
    28.            
    29.             bezahlung.AddBezahlPosition(bezahlart, id, betrag, grund);
    30.             AbrechnungsLabelFüllen();
    31.             listBezahlart.Items.Refresh();
    32.         }
    33.  
    34.         private void Grid_Loaded(object sender, RoutedEventArgs e)
    35.         {
    36.             AddBezahlart();
    37.         }
    38.  
    39.     }
    Code (Text):
    1. <ListView ItemsSource="{DynamicResource Bezahlungen}"  Name="listBezahlart"  SelectionMode="Single" >
    2.                     <ListView.View>
    3.                         <GridView>
    4.                             <GridViewColumn Header="Bezahlart"  >
    5.                                 <GridViewColumn.CellTemplate>
    6.                                     <DataTemplate>
    7.                                         <ComboBox  Name="cbBezahlart" SelectedItem="{Binding Value.Bezahlart, Mode=TwoWay}"   ItemsSource="{DynamicResource BezahlartenList}" SelectionChanged="cbBezahlart_SelectionChanged">
    8.  
    9.                                         </ComboBox>
    10.                                     </DataTemplate>
    11.                                 </GridViewColumn.CellTemplate>
    12.                             </GridViewColumn>
    13.                             <GridViewColumn Header="ID" >
    14.                                 <GridViewColumn.CellTemplate>
    15.                                     <DataTemplate>
    16.                                         <TextBox Name="tbID" Text="{Binding Value.ID, Mode=TwoWay}" MaxLength="6" >
    17.  
    18.                                         </TextBox>
    19.                                     </DataTemplate>
    20.                                 </GridViewColumn.CellTemplate>
    21.                             </GridViewColumn>
    22.                             <GridViewColumn Header="Betrag" >
    23.                                 <GridViewColumn.CellTemplate>
    24.                                     <DataTemplate>
    25.                                         <TextBox Name="tbBetrag" MinWidth="190" Text="{Binding Value.Betrag,Mode=TwoWay, StringFormat='{}{0:0.00}'}"  >
    26.  
    27.                                         </TextBox>
    28.                                     </DataTemplate>
    29.                                 </GridViewColumn.CellTemplate>
    30.                             </GridViewColumn>
    31.                             <GridViewColumn Header="Grund" >
    32.                                 <GridViewColumn.CellTemplate>
    33.                                     <DataTemplate>
    34.                                         <TextBox Name="tbGrund"  Text="{Binding Value.Grund, Mode=TwoWay}" >
    35.  
    36.                                         </TextBox>
    37.                                     </DataTemplate>
    38.                                 </GridViewColumn.CellTemplate>
    39.                             </GridViewColumn>
    40.                             <GridViewColumn Header="" >
    41.                                 <GridViewColumn.CellTemplate>
    42.                                     <DataTemplate>
    43.                                         <Button Name="btnArtHinzufügen" Content="+"  Click="btnArtHinzufügen_Click" />
    44.                                     </DataTemplate>
    45.                                 </GridViewColumn.CellTemplate>
    46.                             </GridViewColumn>
    47.                             <GridViewColumn Header="" >
    48.                                 <GridViewColumn.CellTemplate>
    49.                                     <DataTemplate>
    50.                                         <Button Name="btnArtDelete" Content="-" Tag="{Binding Value.listId}"  Click="btnArtDelete_Click" />
    51.                                     </DataTemplate>
    52.                                 </GridViewColumn.CellTemplate>
    53.                             </GridViewColumn>
    54.                         </GridView>
    55.                     </ListView.View>
    56.                 </ListView>
    Bezahlart1.jpg Bezahlart2.jpg
     
Die Seite wird geladen...