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
之前必须为空”。
您应该做的是将静态项添加到视图模型中的源集合。
我有一个状态栏,它将包含一些动态状态栏项和一些 "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
之前必须为空”。
您应该做的是将静态项添加到视图模型中的源集合。