StatusBar - 动态项目和静态项目

StatusBar - Dynamic items and static items

我有一个状态栏,它将包含一些动态状态栏项和一些 "hard-coded" 状态栏项。出于某种原因,动态状态栏项目没有显示,即使与 ViewModel 属性 的绑定已经完成,我可以使用 Live Visual Tree

查看项目

这是状态栏

<StatusBar x:Name="StatusBar" Grid.Column="2" Grid.Row="1" ItemsSource="{Binding}">
            <StatusBar.Background>
                <SolidColorBrush Color="White" Opacity="0.5"/>
            </StatusBar.Background>
            <StatusBarItem Height="60" Width="120" HorizontalAlignment="Right">
                <Image Source="Logo.png" ></Image>
            </StatusBarItem>           
            <Separator></Separator>        
            <StatusBar.ItemTemplate>                
                <DataTemplate>
                    <TextBlock Text="ASDF"></TextBlock>
                </DataTemplate>
            </StatusBar.ItemTemplate>
        </StatusBar>

这是运行时的状态栏。

如您所见,可观察集合中有 5 个项目可见,2 个项目未在 UI 上呈现。

这就是 UI 的样子

green/blue部分是可见的,StatusBar的其余部分space被最后一个分隔符占用。我的动态项找不到了。

有什么想法吗?我可以让两个 dynamic/static 项目在同一个 StatusBar 中工作吗?或者我需要添加 2 个状态栏,一个用于动态内容,另一个用于静态内容。

Can I make both dynamic/static items work in the same StatusBar?

没有。您不能既绑定到 ItemsSource 又将静态对象添加到 Items 集合。

如果您的绑定有效,您会得到一个 InvalidOperationException 表示“Items 集合在使用 ItemsSource 之前必须为空”。

您应该做的是将静态项添加到视图模型中的源集合。