如何在 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>
衷心感谢所有试图阅读我的问题并试图帮助我的人。 =)
如果您使用的是 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;
}