Всем привет. Данный вопрос продолжение
этого.
Решил я не использовать Windows Form а написать приложение на WPF. Немного изменив интерфейс и заодно изучив новую для себя тему. Интерфейс, по моей задумке будет выглядить так
При клике на элемент listboxa должен загружаться usercontrol (главный), в нем при щелчке на checkbox должен загружаться usercontrol с таблицей в которой пользователь указывает данные для расчета (всего 3 таблицы, т.е. 3 usercontrola) На данный момент реализовал добавление элемента в listbox.
MainWindowViewModel.csclass MainWindowViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string _contentToAdd;
private ObservableCollection<string> _devList;
public ICommand AddCommand { get; set; }
public void NotifyPropertyChanged(string propertyname)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyname));
}
}
public MainWindowViewModel()
{
_devList = new ObservableCollection<string>();
AddCommand = new DelegateCommand(Add);
}
public ObservableCollection<string> DevList
{
get { return this._devList; }
set { this._devList = value; }
}
public string ContentToAdd
{
get { return this._contentToAdd; }
set { this._contentToAdd = value; NotifyPropertyChanged("ContentToAdd"); }
}
public void Add(object parameter)
{
DevList.Add(ContentToAdd);
}
}
MainWindow.xaml<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="60"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0">
<Button x:Name="btn_add_list" Content="Добавить" Command="{Binding AddCommand}" Margin="0,5,0,5"/>
<TextBox Text="{Binding ContentToAdd}" x:Name="item_title_txt" Height="23" TextWrapping="Wrap" Margin="0,5,0,10" Tag="Название устройства"/>
</StackPanel>
<ListBox ItemsSource="{Binding DevList}" Grid.Row="1" x:Name="device_list" ></ListBox>
</Grid>
Не пойму как мне теперь при клике на элемент listboxa подгружать usercontrol (данные со всех элементов listboxa должны сохраняться, то есть если я перейду на элемент2 а потом на элемент1 данные не должна пропасть).
Правильно ли я понял, мне надо повесить событие на элемент listboxa при срабатывании которого будет загружаться usercontrol и помещаться в какой нибудь список, а при срабатывании события будет проверка с этим списком. Так же нужна модель которая будет у каждого usercontrola собирать значения и так же помещать их в список, т.е. это все должно происходить при клике на элемент. Не пойму как так сделать, может есть пример посмотреть или почитать.. Насколько вообще правильно я делаю, может есть способ более правильный?