WPF自定义列中按钮的IsEnabled属性根据列中的值的不同动态赋值

本文介绍如何在WPF应用中利用自定义转换器,通过读取特定字段值来动态控制界面元素的状态,以实现按钮启用与否的逻辑判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.创建转换类,0为已读,让“阅”按钮不可用,即返回False

public class ReadOrNoReadConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int readStatus = value.ToString();
if (readStatus==0)
{
return false;
}
else
{
return true;
}
}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string strValue = value.ToString();
//DateTime resultDateTime;
//if (DateTime.TryParse(strValue, out resultDateTime))
//{
// return resultDateTime;
//}
return value;
}
}


2.WPF中在模板列写如下代码,IsEnabled的属性值是根据readStatus字段经过ReadOrNoReadConverter转换器的转换生成的,所以到底生成true还是false要在转换器类中定义逻辑规则

<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="阅" IsEnabled="{Binding Path=readStaus,Converter={StaticResource ReadOrNoReadConverter}}"></Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>


3.最后引入命名空间

<UserControl x:Class="BankLogix.ForexStar.WinFXManager.Components.wpf.OpenPositions"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dataPrimitives="clr-namespace:System.Windows.Controls.Primitives;assembly=PresentationFramework"
xmlns:data="clr-namespace:System.Windows.Controls;assembly=PresentationFramework"
xmlns:VM="clr-namespace:BankLogix.ForexStar.WinFXManager.Components.wpf.Converter"

声明转换器

<UserControl.Resources>
<VM:ReadOrNoReadConverter x:Key="ReadOrNoReadConverter"/>
</UserControl.Resources>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值