如何在 XAML 中管理复选框

本文关键字:管理 复选框 XAML | 更新日期: 2023-09-27 17:55:52

我是编程初学者。我想通过在复选框中包含"if-else-condition"来管理我的复选框。例如,我的网格中有两列名为"可读"和"可写"(公共布尔值)。我将对这两列使用复选框。

1) 如果可读/可写的值为假,则复选框将是"只读的"。

2) 复选框可由用户编辑,如果可读/可写的值为真。

例如,如何从下面的代码进行编辑?(假设我已经完成了数据绑定)

<sf:GridTreeColumn MappingName="Readable" PercentWidth="2">
    <sf:GridTreeColumn.StyleInfo>
        <sf:GridStyleInfo CellType="CheckBox" HorizontalAlignment="Center" IsThreeState="False"/>
    </sf:GridTreeColumn.StyleInfo>
</sf:GridTreeColumn>
<sf:GridTreeColumn MappingName="Writable" PercentWidth="2">
    <sf:GridTreeColumn.StyleInfo>
        <sf:GridStyleInfo CellType="CheckBox" HorizontalAlignment="Center" IsThreeState="False"/>
    </sf:GridTreeColumn.StyleInfo>
</sf:GridTreeColumn>

衷心感谢所有试图阅读我的问题并试图帮助我的人。 =)

如何在 XAML 中管理复选框

如果您使用的是 Syncfusion 控件,则您有一个属性从 syncfusion 中获取它。GridCommon.wpf. 以在列内设置复选框

<sf:GridTreeColumn MappingName="Readable" PercentWidth="2">
<sf:GridTreeColumn.StyleInfo>
    <sf:GridStyleInfo CellType="CheckBox" gridCommon:VisualContainer.WantsMouseInput=true HorizontalAlignment="Center" IsThreeState="False"/>
</sf:GridTreeColumn.StyleInfo>

试试这个!

这可以通过使用转换轻松实现:在项目中添加此类并将其包含在 XAML 代码中

 public sealed class BoolToVisibilityConverter : IValueConverter
{
    #region Methods
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        bool boolValue = false;
        if (!bool.TryParse(System.Convert.ToString(value), out boolValue))
        {
            boolValue = false;
        }
        if (boolValue)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    #endregion

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

XAML 代码:

<UserControl.Resources>
    <converter:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter" />
</UserControl.Resources>
<sf:GridTreeColumn MappingName="Readable" PercentWidth="2">
<sf:GridTreeColumn.StyleInfo>
    <sf:GridStyleInfo CellType="CheckBox" HorizontalAlignment="Center"   
 IsThreeState="False" IsEnabled="{Binding Readable, Converter={StaticResource  
 BoolToVisibilityConverter}}"/>
 </sf:GridTreeColumn.StyleInfo>
 </sf:GridTreeColumn>
 <sf:GridTreeColumn MappingName="Writable" PercentWidth="2">
 <sf:GridTreeColumn.StyleInfo>
 <sf:GridStyleInfo CellType="CheckBox" HorizontalAlignment="Center" 
 IsThreeState="False" IsEnabled="{Binding Writable, Converter={StaticResource   
 BoolToVisibilityConverter}}"/>
 </sf:GridTreeColumn.StyleInfo>
 </sf:GridTreeColumn>

希望这有帮助。

虽然这不能直接回答您的问题,但在单击按钮时启用和禁用复选框可能会为您提供所需的结果,即能够使复选框只读或读/写。

注意:这个简单而有效的概念可以更改并用于加载事件或用户身份验证,禁用或启用应用程序上的特定内容,这在将来可能对您有用。

        private void btnEnable_Click(object sender, RoutedEventArgs e)
        {
            checkBox.IsEnabled = true;
        }
        private void btnDisable_Click(object sender, RoutedEventArgs e)
        {
            checkBox.IsEnabled = false;
        }