带有 MVVM 的 WPF:无法在不同页面中的文本框中写入/读取数据



所以我一直在为我的最终项目制作这个程序。我在WPF中使用选项卡控件中的页面。在这些页面中,用户填写页面中的所有数据,然后按下按钮,该按钮将保存数据并将其发送到服务器。或者他们可以从服务器加载数据,数据应该出现在MVVM的文本框中。但它没有,也没有从文本框中读取任何数据。我不知道我做错了什么。下面是我的一些代码(它有59项,所以我只展示其中的一些)。并且只从服务器插入。因为如果这是固定的,保存/更新也将很容易修复我认为。提前谢谢你

Window.xaml.cs——

public void DataInlezen(string Json)
{
DataGebruiker viewmodel = new DataGebruiker();
var Djson = JsonConvert.DeserializeObject<JsonCS>(Json);
foreach (var AlgeInf in Djson.algemeneInformatie)
{
viewmodel.Achternaam = AlgeInf.Achternaam;
viewmodel.Voornaam = AlgeInf.Voornaam;
viewmodel.Straat = AlgeInf.Straat;
viewmodel.Huisnummer = AlgeInf.Huisnummer;
viewmodel.Postcode = AlgeInf.Postcode;
viewmodel.Stad = AlgeInf.Stad;
viewmodel.Email = AlgeInf.Email;
viewmodel.GSM = AlgeInf.GSM;
viewmodel.Beroep = AlgeInf.Beroep;
viewmodel.Leeftijd = AlgeInf.Leeftijd;
viewmodel.Geslacht = AlgeInf.Geslacht;
}

模型——

public class DataGebruiker : INotifyPropertyChanged
{
private string _Achternaam;
public string Achternaam
{
get
{
return _Achternaam;
}
set
{
_Achternaam = value;
OnPropertyChanged("Achternaam");
}
}
private string _Voornaam;
public string Voornaam
{
get
{
return _Voornaam;
}
set
{
_Voornaam = value;
OnPropertyChanged("Voornaam");
}
}
//more stuff
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));

ViewModel——

internal class DataGebruikerViewModel
{
private readonly DataGebruiker _DataGebruiker;
public DataGebruikerViewModel()
{
_DataGebruiker = new DataGebruiker();
}        
public DataGebruiker DataGebruiker
{
get
{
return _DataGebruiker;
}
}

XAML——

<Page.DataContext>
<local:DataGebruikerViewModel/>
</Page.DataContext>
<!--some layout stuff-->
<TextBox Name="TextBoxAchternaam" Grid.Column="1" Grid.Row="0" Text="{Binding DataGebruiker.Achternaam}" FontSize="24" VerticalContentAlignment="Center" Margin="6" />
<TextBox Name="TextBoxVoornaam" Grid.Column="1" Grid.Row="1" Text="{Binding DataGebruiker.Voornaam}" FontSize="24" VerticalContentAlignment="Center" Margin="6" />
<Button Name="ButtonOpzoeken" Grid.Column="1" Content="Opzoeken" Grid.Row="8" Width="150" HorizontalAlignment="Center"  FontSize="24" Click="ButtonOpzoeken_Click"/> //button to save

我认为这是因为绑定在视图中的DataGebruiker的实例与DataInlezen方法实例化的实例不同。

相关内容

  • 没有找到相关文章

最新更新