Я хотел бы привязать к элементам несколько моделей представления. Я еще не понял этого достаточно, чтобы реализовать это. Проблема для начинающих...:/ Одна модель представления для одного слайдера ясна для меня через DataContext. Но как мне это сделать, если у меня есть несколько моделей представления?
Пример: значения двух ползунков и свойство text двух текстовых полей должны быть привязаны к двум моделям представления. Побочная проблема в моем примере кода: изменение текста TextBox еще не меняет ползунок.
xaml:
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Windows;
namespace BindingViewModelSlider
{
public partial class MainWindow : Window
{
ViewModelSlider myViewModelSlider1 = new ViewModelSlider();
ViewModelSlider myViewModelSlider2 = new ViewModelSlider();
public MainWindow()
{
InitializeComponent();
DataContext = myViewModelSlider1;
DataContext = myViewModelSlider2; // not working
// Set initally some slider values
myViewModelSlider1.SliderValue = 80;
myViewModelSlider2.SliderValue = 50;
}
}
// ViewModel for slider values
public class ViewModelSlider : INotifyPropertyChanged
{
private int sliderValue;
public string TextBoxText
{
get { return sliderValue.ToString();}
set
{
sliderValue = int.Parse(value);
OnPropertyChanged();
}
}
public int SliderValue
{
get{ return sliderValue;}
set
{
sliderValue = value;
TextBoxText = sliderValue.ToString(); // necessary or better via binding in xaml?
OnPropertyChanged();
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged([CallerMemberName] String propName = null)
{
if (PropertyChanged != null)
PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propName));
}
}
}
Не могли бы вы объяснить мне, как правильно связать обе модели представления?
Я хотел бы привязать к элементам несколько моделей представления. Я еще не понял этого достаточно, чтобы реализовать это. Проблема для начинающих...:/ Одна модель представления для одного слайдера ясна для меня через DataContext. Но как мне это сделать, если у меня есть несколько моделей представления? Пример: значения двух ползунков и свойство text двух текстовых полей должны быть привязаны к двум моделям представления. Побочная проблема в моем примере кода: изменение текста TextBox еще не меняет ползунок. xaml: [code]
[/code] cs: [code]using System.ComponentModel; using System.Runtime.CompilerServices; using System.Windows;
namespace BindingViewModelSlider { public partial class MainWindow : Window { ViewModelSlider myViewModelSlider1 = new ViewModelSlider(); ViewModelSlider myViewModelSlider2 = new ViewModelSlider();
public MainWindow() { InitializeComponent(); DataContext = myViewModelSlider1; DataContext = myViewModelSlider2; // not working
// Set initally some slider values myViewModelSlider1.SliderValue = 80; myViewModelSlider2.SliderValue = 50; }
}
// ViewModel for slider values public class ViewModelSlider : INotifyPropertyChanged { private int sliderValue; public string TextBoxText { get { return sliderValue.ToString();} set { sliderValue = int.Parse(value); OnPropertyChanged(); } }
public int SliderValue { get{ return sliderValue;} set { sliderValue = value; TextBoxText = sliderValue.ToString(); // necessary or better via binding in xaml? OnPropertyChanged(); } }
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged([CallerMemberName] String propName = null) { if (PropertyChanged != null) PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propName)); }
} } [/code] Не могли бы вы объяснить мне, как правильно связать обе модели представления?