wpf 列表为空时,按键不可用

using Prism.Commands;

using Prism.Mvvm;

using System.Collections.ObjectModel;

public class MyViewModel : BindableBase

{

private ObservableCollection<string> _items;

public ObservableCollection<string> Items

{

get => _items;

set => SetProperty(ref _items, value);

}

public DelegateCommand MyCommand { get; private set; }

public MyViewModel()

{

Items = new ObservableCollection<string>(); // 初始化列表

MyCommand = new DelegateCommand(ExecuteMyCommand, CanExecuteMyCommand);

// 当列表内容变化时,触发CanExecute条件的检查

Items.CollectionChanged += (s, e) => MyCommand.RaiseCanExecuteChanged();

}

private void ExecuteMyCommand()

{

// 按钮点击时执行的操作

}

private bool CanExecuteMyCommand()

{

// 列表为空时,命令不可执行,按钮不可用

return Items.Count > 0;

}

}

<Button Content="My Button" Command="{Binding MyCommand}" />

相关推荐
helloworddm26 分钟前
防止应用多开-WPF
服务器·架构·c#
我是唐青枫37 分钟前
深入理解 Parallel.ForEachAsync:C#.NET 并行调度模型揭秘
c#·.net
bugcome_com2 小时前
深入解析 C# 中 const 与 readonly 的核心区别
c#
kylezhao20192 小时前
工业机器视觉基础认知
计算机视觉·c#·visionpro
水龙吟啸2 小时前
项目设计与开发:智慧校园食堂系统
python·机器学习·前端框架·c#·团队开发·visual studio·数据库系统
flysh052 小时前
C#语言基础知识要点
开发语言·c#
闻缺陷则喜何志丹3 小时前
【三维建模】三维建模基础一
c#·计算几何·cad·三维建模·布尔运算·切点
我是唐青枫15 小时前
深入理解 C#.NET Interlocked.Increment:原子操作的核心
c#·.net
yue00815 小时前
C# 字符串倒序
开发语言·c#
ejjdhdjdjdjdjjsl18 小时前
C#类型转换与异常处理全解析
开发语言·c#