WPF:如何将元素绑定到列表框范围之外?

我有一个ListBox,其ItemsSource绑定到名为Employees类的Employee的对象列表。在ItemTemplat e内部,我已经定义了DataTemplate,并且希望列表中的每个项目都像EmployeeName AnIcon一样显示。

下面是已经显示它的代码。请注意,TextBlock已绑定到Name类中的变量之一Employee。同样,内部按钮的IsCreatedAtOffice变量也是Employee class中的变量之一。一切都按预期进行。

<ListBox    x:Name="listbox"
            ItemsSource="{Binding Employees}"
            ........
            SelectedItem="{Binding CurrentEmployee}"
            ItemContainerStyle="{StaticResource defaultListBoxItem}" >
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid Height="64">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="64"/>
                </Grid.ColumnDefinitions>
                <TextBlock 
                    Grid.Column="0" 
                    Text="{Binding Name}" />
                <DockPanel Grid.Column="1" Visibility="{Binding ElementName=root,Path=DataContext.IsnotEditable,Converter={StaticResource BoolToVisibilityConverter}}">
                    <Button Visibility="{Binding IsCreatedAtOffice,Converter={StaticResource BoolToVisibilityConverterNotReversed}}" >
                        <Image Grid.Column="1" Width="48" Source="{Binding IsCreatedAtOffice,Converter={StaticResource EmpSyncStatus}}" />
                    </Button>
                </DockPanel>
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

但是现在,我要实现的是:

基于在其MVVM视图模型类中设置的布尔变量切换完整Visibility的{​​{1}}。该变量不在DockPanel类内。可以说Employee

如果vm类中的IsFeatureSupportedIsFeatureSupported,那么我希望此true(按钮和图标)可见,否则我想将其隐藏。

基本上,我不知道如何将DockPanel的{​​{1}}绑定与现有元素中的根元素的Visibility分离(如代码所示)并将其附加到{{1} }不属于DockPanel的一部分?

song8531019 回答:WPF:如何将元素绑定到列表框范围之外?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3152872.html

大家都在问