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

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:
public partial class Page2 : Page
    {
        List<string> listArt = new List<string>();
        public Model.Bezahlung bezahlung = new Model.Bezahlung();

        public Page2()
        {
            listArt.Add("Stechkarte");
            listArt.Add("Bar");
            listArt.Add("Kostenstelle");
            listArt.Add("Gutschein");

            Resources["BezahlartenList"] = listArt;
            Resources["Bezahlungen"] = bezahlung.bezahlPositionDict;
            InitializeComponent();
        }

        private void btnArtHinzufügen_Click(object sender, RoutedEventArgs e)
        {
            AddBezahlart();
        }
      
        public void AddBezahlart()
        {
            string grund = "", bezahlart = "Stechkarte";
            int id = 0;
            double betrag = 0.0;
           
            bezahlung.AddBezahlPosition(bezahlart, id, betrag, grund);
            AbrechnungsLabelFüllen();
            listBezahlart.Items.Refresh();
        }

        private void Grid_Loaded(object sender, RoutedEventArgs e)
        {
            AddBezahlart();
        }

    }

Code:
<ListView ItemsSource="{DynamicResource Bezahlungen}"  Name="listBezahlart"  SelectionMode="Single" >
                    <ListView.View>
                        <GridView>
                            <GridViewColumn Header="Bezahlart"  >
                                <GridViewColumn.CellTemplate>
                                    <DataTemplate>
                                        <ComboBox  Name="cbBezahlart" SelectedItem="{Binding Value.Bezahlart, Mode=TwoWay}"   ItemsSource="{DynamicResource BezahlartenList}" SelectionChanged="cbBezahlart_SelectionChanged">

                                        </ComboBox>
                                    </DataTemplate>
                                </GridViewColumn.CellTemplate>
                            </GridViewColumn>
                            <GridViewColumn Header="ID" >
                                <GridViewColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBox Name="tbID" Text="{Binding Value.ID, Mode=TwoWay}" MaxLength="6" >

                                        </TextBox>
                                    </DataTemplate>
                                </GridViewColumn.CellTemplate>
                            </GridViewColumn>
                            <GridViewColumn Header="Betrag" >
                                <GridViewColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBox Name="tbBetrag" MinWidth="190" Text="{Binding Value.Betrag,Mode=TwoWay, StringFormat='{}{0:0.00}'}"  >

                                        </TextBox>
                                    </DataTemplate>
                                </GridViewColumn.CellTemplate>
                            </GridViewColumn>
                            <GridViewColumn Header="Grund" >
                                <GridViewColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBox Name="tbGrund"  Text="{Binding Value.Grund, Mode=TwoWay}" >

                                        </TextBox>
                                    </DataTemplate>
                                </GridViewColumn.CellTemplate>
                            </GridViewColumn>
                            <GridViewColumn Header="" >
                                <GridViewColumn.CellTemplate>
                                    <DataTemplate>
                                        <Button Name="btnArtHinzufügen" Content="+"  Click="btnArtHinzufügen_Click" />
                                    </DataTemplate>
                                </GridViewColumn.CellTemplate>
                            </GridViewColumn>
                            <GridViewColumn Header="" >
                                <GridViewColumn.CellTemplate>
                                    <DataTemplate>
                                        <Button Name="btnArtDelete" Content="-" Tag="{Binding Value.listId}"  Click="btnArtDelete_Click" />
                                    </DataTemplate>
                                </GridViewColumn.CellTemplate>
                            </GridViewColumn>
                        </GridView>
                    </ListView.View>
                </ListView>

Bezahlart1.jpg Bezahlart2.jpg
 
Zurück