Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 试图隐藏复选框,直到选择了菜单选项,但复选框无效';隐藏_Wpf_Xaml_Checkbox_Binding_Visibility - Fatal编程技术网

Wpf 试图隐藏复选框,直到选择了菜单选项,但复选框无效';隐藏

Wpf 试图隐藏复选框,直到选择了菜单选项,但复选框无效';隐藏,wpf,xaml,checkbox,binding,visibility,Wpf,Xaml,Checkbox,Binding,Visibility,我有一个复选框,只有在选择菜单选项时才会出现。未选择菜单选项时,应隐藏复选框。我在代码中设置了可见性变量: private Visibility _checkboxVisibility; public Visibility CheckboxVisibility { get { return _checkboxVisibility; } set { SetProperty(ref _checkboxVisibi

我有一个复选框,只有在选择菜单选项时才会出现。未选择菜单选项时,应隐藏复选框。我在代码中设置了可见性变量:

private Visibility _checkboxVisibility;
public Visibility CheckboxVisibility 
{ 
    get 
    { 
        return _checkboxVisibility; 
    } 
    set 
    { 
        SetProperty(ref _checkboxVisibility, value);
        OnPropertyChanged(nameof(CheckboxVisibility));
    } 
}
初始化视图模型时,我确保将其设置为
Hidden
。当选择菜单选项时,它被设置为可见

下面是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}" />


有更多的专栏,但这似乎是重要的一点。如果我将其设置为“直接
隐藏”
,复选框将被隐藏,因此我的绑定有问题,但我不确定是什么问题。我还尝试将其绑定到布尔值并使用转换器,但这似乎也没有帮助。我试着在网上寻找答案,但无论我走到哪里,我都能看到另一个项目绑定到一个复选框。任何帮助都将不胜感激。

好吧,我找到了答案,结果我没有给任何人足够的解释来帮助我。listview的
ItemSource
绑定上没有
CheckboxVisibility
属性。它试着像以前那样绑在它身上。我必须使用
相对资源
属性,如下所示:

Visibility="{Binding DataContext.MassImportModeVisibility, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListView}}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
我会尽量在将来提供足够的信息