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}" />

相关推荐
大王小生4 小时前
说说CSV文件和C#解析csv文件的几种方式
人工智能·c#·csv·csvhelper·csvreader
LongtengGensSupreme5 小时前
C# 中监听 IPv6 回环地址----HttpListener
c#·ipv6·httplistener
zzcufo8 小时前
多邻国学习笔记第五阶段第10-11部分
笔记·学习·c#
easyboot14 小时前
C#使用pythonnet简单示例
开发语言·python·c#
刘欣的博客15 小时前
c# winform 控件dock 停造位置、摆放顺序问题
c#·winform·dock停靠问题
Java程序员威哥16 小时前
Arthas+IDEA实战:Java线上问题排查完整流程(Spring Boot项目落地)
java·开发语言·spring boot·python·c#·intellij-idea
easyboot17 小时前
C#通过sqlsugar插入数据到postgresql
开发语言·c#
阿蒙Amon17 小时前
C#每日面试题-break、continue和goto的区别
java·面试·c#
mudtools18 小时前
C#中基于Word COM组件的数学公式排版实践
开发语言·c#·word
阿蒙Amon18 小时前
C#每日面试题-简述this和base的作用
java·面试·c#