我遇到了一个有趣的问题。如何从ViewModel更改ToggleButton?
摘要:我无法从ViewModel更改切换按钮的状态。 Microsoft ToggleButton和Telerik Controls也出现了同样的问题。
视图模型:
private bool? _isToggleChecked;
public bool? IsToggleChecked
{
get { return _isToggleChecked; }
set
{
if(_isToggleChecked == value)
return;
_isToggleChecked = value;
RaisePropertyChanged(()=>IsToggleChecked);
}
}
public VM()
{
FireCommand = new DelegateCommand(OnFire);
}
private void OnFire()
{
if (IsToggleChecked == null)
{
IsToggleChecked = true;
return;
}
IsToggleChecked = !IsToggleChecked;
}
public DelegateCommand FireCommand { get; set; }
查看:(微软的切换按钮可以用来代替具有相同的行为)
<Grid x:Name="LayoutRoot" Background="White">
<StackPanel>
<telerik:RadToggleButton Height="50" IsChecked="{Binding IsToggleChecked}" />
<Button Command="{Binding FireCommand}" Height="20" />
</StackPanel>
</Grid>
查看代码背后:
public MainPage()
{
InitializeComponent();
DataContext = new VM();
}
这怎么可能?我怎样才能改变切换状态programmaticaly?
非常感谢,
你尝试不使用可为空的财产? – Tigran
谢谢你,现在工作。 :)请把这个作为回应,并将其标记为已回答。 – Houman