Files
Ayay/SHH.CameraDashboard/Pages/CameraWall/VideoWallViewModel.cs

50 lines
1.6 KiB
C#
Raw Normal View History

using System.Collections.ObjectModel;
using System.Windows.Input;
namespace SHH.CameraDashboard
{
public class VideoWallViewModel : ViewModelBase
{
// 视频列表
public ObservableCollection<VideoTileViewModel> VideoTiles { get; } = new ObservableCollection<VideoTileViewModel>();
// 控制 UniformGrid 的列数 (决定是 2x2 还是 3x3)
private int _columns = 2;
public int Columns
{
get => _columns;
set => SetProperty(ref _columns, value);
}
// 切换布局命令
public ICommand SetLayoutCommand { get; }
public VideoWallViewModel()
{
SetLayoutCommand = new RelayCommand<string>(ExecuteSetLayout);
// 3. 初始化格子 (不再需要传入 IP/Port 去主动连接了)
// 我们用 CameraId 或 Name 来作为匹配标识
InitVideoTiles();
}
private void InitVideoTiles()
{
// 假设我们预设 4 个格子,分别对应不同的摄像头 ID
// 这里 ID 必须和采集端发送的 VideoPayload.CameraId 一致
//VideoTiles.Add(new VideoTileViewModel("1004", "仓库通道"));
}
private void ExecuteSetLayout(string layoutType)
{
switch (layoutType)
{
case "1x1": Columns = 1; break;
case "2x2": Columns = 2; break;
case "3x3": Columns = 3; break;
case "4x4": Columns = 4; break;
default: Columns = 2; break;
}
}
}
}