WPF CalcBinding简化判断逻辑

使用场景:多个RadioButton如何通过一个值进行绑定?

注意:不需要修改的可以使用,如果涉及到选中修改的话 建议还是使用转换器。

解决方案:CalcBinding支持在Binding中写简化的判断逻辑。

使用方法如下:

首先在NuGet中安装CalcBinding

csharp 复制代码
<RadioButton
    Height="60"
    Content="A"
    FontSize="14"
    FontWeight="Bold"
    Foreground="Black"
    GroupName="StartRun"
    IsChecked="{calc:Binding 'OperationIndex == 0'}"
    Style="{StaticResource MinCustomRadioButtonStyle}" />
<RadioButton
    Height="60"
    Content="B"
    FontSize="14"
    FontWeight="Bold"
    Foreground="Black"
    GroupName="StartRun"
    IsChecked="{calc:Binding 'OperationIndex == 1'}"
    Style="{StaticResource MinCustomRadioButtonStyle}" />
<RadioButton
    Grid.Column="1"
    Height="60"
    Content="C"
    FontSize="14"
    FontWeight="Bold"
    Foreground="Black"
    GroupName="StartRun"
    IsChecked="{calc:Binding 'OperationIndex == 2'}"
    Style="{StaticResource MinCustomRadioButtonStyle}" />

扩展:

csharp 复制代码
  <!-- 简单的相等比较 -->
        <RadioButton Content="选项一" 
                     IsChecked="{calc:Binding 'SelectedIndex == 1'}" />
        
        <!-- 枚举比较 -->
        <RadioButton Content="男性" 
                     IsChecked="{calc:Binding 'Gender == Gender.Male'}" />
        
        <!-- 字符串比较 -->
        <RadioButton Content="北京" 
                     IsChecked="{calc:Binding 'City == \"Beijing\"'}" />
        
        <!-- 复杂逻辑表达式 -->
        <RadioButton Content="有效用户" 
                     IsChecked="{calc:Binding 'IsActive && Age >= 18'}" />

完结。

相关推荐
bugcome_com9 小时前
C# 事件(Event)详解及实战示例
c#
CSharp精选营11 小时前
.NET命名之谜:它与C#纠缠20年的关系揭秘
c#·.net·dotnet·csharp
是五月吖11 小时前
【C#】SOLID原则
c#
就是有点傻11 小时前
如何使用简单的服务端去接收数据
c#
AlphaNil13 小时前
.NET + AI 跨平台实战系列(三):云端多模态API实战——用GPT-4V让App看懂世界
人工智能·后端·.net·maui
人工智能AI技术13 小时前
两会“人工智能+“风口已至:C#开发者用Semantic Kernel搭建企业级Agent的3个实战套路
人工智能·c#
专注VB编程开发20年14 小时前
“机械臂写字”最完美的开源数据源之一
.net
进击的编程阿伟15 小时前
C#开发工程师-面经
面试·c#
缺点内向16 小时前
C#实战:使用Spire.XLS for .NET 将Excel转换为SVG图片
c#·自动化·.net·excel
小曹要微笑16 小时前
C#的运算符重载
开发语言·c#·运算符重载·c#运算符重载