我遇到了一個有趣的問題。如何從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