Просто начинайте использовать WPF / MVVM и задайте вопрос об использовании модели представления в качестве текстового контекста для окна wpf.
Я использую первый подход, и мой взгляд выглядит так:
<Window x:Class="TestContext.TestForm"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="TestForm" Height="300" Width="300"
DataContext="{StaticResource testViewModel}">
<Grid>
<TextBox Text="{Binding Path=Address}" Height="23" HorizontalAlignment="Left" Margin="34,44,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" />
</Grid>
</Window>
и я создаю свою модель представления в таком коде;
public class ViewModelFactory
{
public TestViewModel CreateTestViewModel()
{
return new TestViewModel();
}
}
Я использую следующий подход в app.xaml для создания экземпляра модели представления всякий раз, когда я создаю экземпляр представления;
<ObjectDataProvider x:Key="testViewModel" ObjectInstance="{StaticResource viewModelFactory}" MethodName="CreateTestViewModel">
Это все отлично работает.
Проблема в том, что я вижу когда-либо созданную модель только один раз. Поэтому новые экземпляры представления используют тот же экземпляр модели представления.
Я бы хотел начать с нового экземпляра модели представления.
Если я создаю модель представления вручную в конструкторе форм;
public TestForm()
{
InitializeComponent();
this.DataContext = new TestViewModel();
}
тогда все работает как положено.
Я пытаюсь понять, что здесь происходит ...
Спасибо ....