【发布时间】:2018-04-03 20:13:17
【问题描述】:
我正在尝试绑定 IsChecked,它是第二次单击时的绑定值。以下是我的 xaml
<ContextMenu><MenuItem Header="Type" IsCheckable="True" IsChecked="{Binding isTypeChecked}" Checked="Type_Click"/>
<MenuItem Header="Price" IsCheckable="True" IsChecked="{Binding isPriceChecked}" Checked="Price_Click"/>
<MenuItem Header="Category" IsCheckable="True" IsChecked="{Binding isCategoryChecked}" Checked="Category_Click"/>
</ContextMenu>
xaml.cs 如下
private void Type_Click(object sender, RoutedEventArgs e)
{
MainViewModel _mainWindowViewModel = new MainViewModel();
DataContext = _mainWindowViewModel;
_mainWindowViewModel.isTypeChecked = true;
_mainWindowViewModel.isPriceChecked = false;
_mainWindowViewModel.isCategoryChecked = false;
ItemsGrid.Columns[3].Visibility = Visibility.Visible;
ItemsGrid.Columns[1].Visibility = Visibility.Collapsed;
ItemsGrid.Columns[2].Visibility = Visibility.Collapsed;
}
ViewModel 如下
public class MainViewModel : INotifyPropertyChanged
{
public MainViewModel() { }
private bool _isTypeChecked;
public bool isTypeChecked { get { return _isTypeChecked; } set { _isTypeChecked = value; NotifyPropertyChanged("isTypeChecked"); } }
private bool _isPriceChecked;
public bool isPriceChecked { get { return _isPriceChecked; } set { _isPriceChecked = value; NotifyPropertyChanged("isPriceChecked"); } }
private bool _isCategoryChecked;
public bool isCategoryChecked { get { return _isCategoryChecked; } set { _isCategoryChecked = value; NotifyPropertyChanged("isCategoryChecked"); } }
public event PropertyChangedEventHandler PropertyChanged;
public void NotifyPropertyChanged(string propName) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName)); }
}
找不到我做错了什么 请帮忙
【问题讨论】:
-
错误是什么?
-
第二次点击它显示选中的选项,即使我在模型属性上设置了断点并且它没有命中
-
你能不能详细描述一下,我真的不明白你所说的“显示选中选项”是什么意思
-
勾选选项必须出现在 IsChecked="{Binding true}" 但它在第二次点击时出现
-
查看输出窗口是否有绑定错误