Click here to Skip to main content
15,886,362 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I have developed a test application. The application contain one comboBox and one XML file. XML vale is getting bind with the ComboBox. Here I need to update the xml As per the selection in the ComboBox. There is an element in XML i.e <selected>Y.If the language is selected to English. Then the <selected> property should be Y for the selected language and for rest all languages the <selected> property should be 'N' ex: <selected>N. Below code I have tried . Some one please help me on this.

What I have tried:

This is GeneralViewModel.cs
public IReadOnlyList<Model.Language> languages { get; } = LoadLanguages();
private static IReadOnlyList<Model.Language> LoadLanguages()
{
    XDocument doc = XDocument.Load("Languages.xml");
    return doc.Root.Elements("LANGUAGE").Select(el => new Model.Language(el)).ToList();
}
private Model.Language _selectedlanguage;
public Model.Language selectedlanguage
{
    get { return _selectedlanguage; }
    set
    {
        if (value != _selectedlanguage)
        {
            _selectedlanguage = value;
            RaisePropertyChanged(nameof(selectedlanguage));
        }
    }
}


This is the GeneralView.xaml

<ComboBox x:Name="cmName" Grid.Row="2" Grid.Column="1" Height="30" Width="150" ItemsSource="{Binding Path=languages}" SelectedValue="{Binding Path=selectedlanguage}" DisplayMemberPath="Name"/>


This is Languages.cs

namespace Clearcore2.VerticalApplications.Settings.Model
{
public class Language
    {
        public Language(XElement element)
        {
            Name = (string)element.Element("Name");
            CultureCode = (string)element.Element("CULTURE");
            Selected = (string)element.Element("Selected");
        }
        public string Name { get; set; }
        public string CultureCode { get; set; }
        public string Selected { get; set; }
    }
}


And This is Languages.xml(So here if we select English in the comboBox,Except English rest for all languages selected value should be 'N' i.e <selected>N)

<?xml version="1.0" encoding="utf-8" ?>
<LANGUAGES>
  <LANGUAGE>
    <Name>English</Name>
    <Culture>en-US</Culture>
    <Selected>Y</Selected>
  </LANGUAGE>
  <LANGUAGE>
    <Name>German</Name>
    <Culture>de-DE</Culture>
    <Selected>Y</Selected>
  </LANGUAGE>
  <LANGUAGE>
    <Name>Chinesh (Simplified)</Name>
    <Culture>zh-CN</Culture>
    <Selected>Y</Selected>
  </LANGUAGE>
  <LANGUAGE>
    <Name>Spanish</Name>
    <Culture>es-ES</Culture>
    <Selected>Y</Selected>
  </LANGUAGE>
</LANGUAGES>
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900