0

i'm building a tool to display and edit the web.config and want to add an "ADD" Button so that i can add an additional connectionstring to the web.config.

ViewModel:

    private ConnectionStringSettingsCollection _ConnectionStrings;
    public  ConnectionStringSettingsCollection ConnectionStrings
    {
        get
        {
            return _ConnectionStrings;
        }
        set
        {
            if (_ConnectionStrings != value)
            {
                _ConnectionStrings = value;
                RaisePropertyChanged("ConnectionStrings");
            }
        }
    }

    private void ExecuteAddConnectionString()
    {
        ConnectionStrings.Add(new ConnectionStringSettings("a","b","c"));

    }

    private void ReadConfig()
    {
        ConnectionStrings = config.ConnectionStrings.ConnectionStrings;
    }

    public void CreateConfig()
    {
        string webDirPath = (PathWithoutFile());
        var vdm = new VirtualDirectoryMapping(webDirPath, true, "web.config");
        var wcfm = new WebConfigurationFileMap();
        wcfm.VirtualDirectories.Add("/", vdm);
        config = WebConfigurationManager.OpenMappedWebConfiguration(wcfm, "/");
    }

View:

        <TabItem Header="ConnectionString">
                <GroupBox Header="ConnectionStrings" BorderBrush="Black" BorderThickness="2" Margin="5">
                    <ListBox ItemsSource="{Binding ConnectionStrings}" Margin="5" Background="Transparent" BorderThickness="0">
                        <ListBox.ItemTemplate >
                            <DataTemplate >
                                <ContentControl >
                                    <vm:ConnectionStringAdd Width="400" Margin="5"/>
                                </ContentControl>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>
                </GroupBox>
        </TabItem>

So when i click on the Add Button it gives me the following Error:

An ItemsControl is inconsistent with its items source

I know that this is because the GUI doesn't receive a notification about the change, but how do i solve it in my case? Can i somehow make the Connectionstrings to a observable collection?

Many thanks

Karsten93
  • 173
  • 1
  • 9

0 Answers0