【发布时间】:2011-11-05 06:29:56
【问题描述】:
我遇到了一个有趣的问题。
总结:我无法从 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; }
视图:(可以使用 Microsoft ToggleButton 来代替,具有相同的行为)
<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();
}
这怎么可能?如何以编程方式更改切换状态?
非常感谢,
【问题讨论】:
-
你试过不使用 Nullable 属性吗?
-
谢谢,现在可以了。 :) 请把它放在那里作为回复,我将其标记为已回答。
标签: c# .net wpf silverlight togglebutton