如何对 WPF 数据网格中存在的项进行计数并将其显示在另一页中
本文关键字:一页 显示 数据 WPF 数据网 网格 存在 | 更新日期: 2023-09-27 18:33:37
我正在使用MVVM模型在C# WPF应用程序中工作。我有一个 DataGrid,我在其中添加了多个值,我想计算网格中存在的项目数并在另一页中显示该值。问题是计数显示在我拥有 DataGrid 的同一页面上,但它没有在另一页上显示计数。
我的代码如下:
public ObservableCollection<VLANSPropertyClass> vlan { get; set; }
<TextBlock Margin="3,0"
Style="{StaticResource SummaryValues}"
Text="{Binding vlan.Count}"
/>
如何在其他页面上显示 DataGrid 的项目计数?
使视图模型成为单个实例。 即。
public class ViewModel
{
private static ViewModel instance = new ViewModel();
private ViewModel()
{
}
public static ViewModel Instance
{
get
{
if (instance == null)
instance = new ViewModel();
return instance;
}
}
public ObservableCollection<string> vlan { get; set; }
}
然后,您可以在第一个窗口中将DataContext设置为ViewModel.Instance,即。
public MainWindow()
{
InitializeComponent();
this.DataContext = ViewModel.Instance;
ViewModel.Instance.vlan=new ObservableCollection<string> { "Fred", "Theo", "Lil Kitty" };
}
private void Button_Click(object sender, RoutedEventArgs e)
{
ViewModel.Instance.vlan.Add(String.Format("String {0}", ViewModel.Instance.vlan.Count + 1));
Window1 win = new Window1();
win.Show();
}
然后,您可以有另一个窗口,该窗口也将DataContext设置为ViewModel.Instance,即:
public Window1()
{
InitializeComponent();
this.DataContext = ViewModel.Instance;
}
这将允许您将两个窗口设置为 ViewModel 的相同实例,并且您仍然可以在每个窗口中像这样绑定(我的示例每次创建一个新窗口并更新所有窗口中的计数等):
<TextBlock Text="{Binding vlan.Count}" />