我正在编写一个 Windows Phone 应用程序;作为一个好公民,我正在使用 MVVM 模式:) 作为 MVVM 方面的专家,我遇到了以下问题,希望我能在这里找到解决方案。
我有以下代码:
XAML
<Grid x:Name="LayoutRoot" Background="Transparent" DataContext="{Binding MyPOCO}">
<StackPanel>
<TextBlock Text="{Binding Name}"/>
<TextBlock Text="{Binding IsActive}"/>
</StackPanel>
</Grid>
代码背后
this.DataContext = new ViewModel();
视图模型
public class ViewModel : ViewModelBase
{
private POCO myPOCO;
public ViewModel()
{
this.myPOCO = new POCO();
this.ToggleActiveStatusCommand = new RelayCommand(this.ToggleActiveStatus);
}
public POCO MyPOCO
{
get
{
return this.myPOCO;
}
}
public RelayCommand ToggleActiveStatusCommand { get; private set; }
private void ToggleActiveStatus()
{
this.MyPOCO.IsActive = !this.MyPOCO.IsActive;
System.Diagnostics.Debug.WriteLine(this.MyPOCO.IsActive);
this.RaisePropertyChanged("MyPOCO");
}
}
POCO
public class POCO
{
public string Name { get; set; }
public bool IsActive { get; set; }
}
我想要实现的是更改 TextBlock 文本作为 IsActive 更改的值......怎么做?我的意思是除了将 POCO 所需的属性作为属性暴露给 ViewModel 之外。
谢谢