我的 MainWindow 类中有以下依赖项属性(从 WPF 的 Window 继承)
public ObservableCollection<ComputerListItem> ActiveComputers
{
get { return (ObservableCollection<ComputerListItem>)this.GetValue(ActiveComputersProperty); }
set { this.SetValue(ActiveComputersProperty, value); }
}
public static readonly DependencyProperty ActiveComputersProperty = DependencyProperty.Register(
"ActiveComputers", typeof(ObservableCollection<ComputerListItem>), typeof(MainWindow), new PropertyMetadata(new ObservableCollection<ComputerListItem>()));
现在我试图ActiveComputers.Count
在我的 XAML 中给一个标签值所以我有这个:
<Window x:Class="ComputerManagerV3.MainWindow"
<!-- SNIP -->
DataContext="{Binding RelativeSource={RelativeSource Self}}"
>
<Grid>
<!--SNIP -->
<Label Name="labelActive" Content="{Binding Source=ActiveComputers, Path=Count}" ></Label>
即使在设计器中,标签现在显示的值也是 15,这很奇怪,因为列表最初填充了 13 个元素。所以我添加了一些测试,无论可观察集合中有多少项目,标签总是显示值 15:/。输出窗口中也没有显示绑定错误,所以我不知道该怎么做。
我的问题:
- 为什么绑定表达式的值总是15?
- 如何编写正确的绑定,以便它始终显示列表中的项目数
- 是否可以在不自己编写值转换器的情况下添加一些文本?