/// <summary> /// 将数据列表绑定并生成子控件列表 /// </summary> private void BindingItems() { _panel.Children.Clear(); NavButtonVisibility = this.Items.Count > MaxVisibleItemCount ? Visibility.Visible : Visibility.Collapsed; foreach (var item in this.Items) { DeviceSelectItemControl pc = new DeviceSelectItemControl(); _panel.Children.Add(pc); pc.DataContext = item; pc.MouseDown += OnDeviceItemClick; Binding binding = new Binding() { Source = this, Path = new PropertyPath("ItemWidth"), UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }; BindingOperations.SetBinding(pc, Canvas.WidthProperty, binding); Binding binding2 = new Binding() { Source = _canvas, Path = new PropertyPath("ActualHeight"), UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }; BindingOperations.SetBinding(pc, Canvas.HeightProperty, binding2); } }
/// <summary> /// 点击了某个设备 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnDeviceItemClick(object sender, MouseButtonEventArgs e) { DeviceSelectItemControl pc = sender as DeviceSelectItemControl; this.SelectedItem = this.SelectedValue = pc.DataContext; //设置当前选择的项 }