如何在XAML中管理CheckBox?

时间:2014-03-31 13:42:04

标签: c# wpf xaml checkbox syncfusion

我是编程的初学者。我想通过包含" if-else-condition"来管理我的Checkbox。在里面。例如,我的网格中有两列名为"可读"和#34;可写" (公共布尔)。我会将CheckBox用于这两列。

1)如果可读/可写的值为false,则CheckBox将为"只读"

2)如果可读/可写值为真,则用户可以编辑CheckBox。

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

<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>

真诚地感谢所有试图阅读我的问题并试图帮助我的人。 =)

3 个答案:

答案 0 :(得分:2)

如果您使用的是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>

试试这个!

答案 1 :(得分:1)

使用转换器可以轻松实现: 在项目中添加此类并将其包含在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>

希望这有帮助。

答案 2 :(得分:1)

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

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

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

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