>我有一个复选框,只有在选择菜单选项时才会出现。如果未选择菜单选项,则应隐藏该复选框。我在代码中设置了一个可见性变量:
private Visibility _checkboxVisibility;
public Visibility CheckboxVisibility
{
get
{
return _checkboxVisibility;
}
set
{
SetProperty(ref _checkboxVisibility, value);
OnPropertyChanged(nameof(CheckboxVisibility));
}
}
当我初始化视图模型时,我确保将其设置为Hidden
.它设置为Visible
选择菜单选项时。
下面是 XAML 代码的代码片段:
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="7*" />
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<CheckBox Grid.Column="0"
IsChecked="{Binding IsSelected, Mode=TwoWay}"
Visibility="{Binding CheckboxVisibility, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
还有更多列,但这似乎是重要的一点。如果我将其设置为 straightHidden
,复选框将被隐藏,所以我的绑定有问题,但我不确定是什么。我尝试将其绑定到布尔值并使用转换器,但这似乎也没有帮助。我尝试过在线寻找答案,但无论我走到哪里,我都会将另一个项目绑定到复选框中。任何帮助将不胜感激。
好吧,我找到了答案,事实证明我没有给任何人足够的澄清来帮助我。CheckboxVisibility
属性不在列表视图的ItemSource
绑定上。它试图像它一样绑定它。我不得不使用这样的RelativeSource
属性:
Visibility="{Binding DataContext.MassImportModeVisibility, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListView}}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
我将在未来尝试提供足够的信息。