我是编程的初学者。我想通过包含" 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>
真诚地感谢所有试图阅读我的问题并试图帮助我的人。 =)
答案 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;
}