当前位置: 首页 > article >正文

44.ComboBox的数据绑定 C#例子 WPF例子

固定最简步骤,包括

XAML:

题头里引入命名空间

标题下面引入类

combobox绑定资源属性和选择属性,block则绑定和combobox一样的选择属性

C#:

通知的类,及对应固定的任务

引入字段

引入属性

其中资源是只读的

选择属性是单触发,必须要加nameof

属性

block=>指向box的属性

这是最简形式

<Window x:Class="绑定类型2_combobox.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:MainWindow_ViewModel"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Window.DataContext>
        <local:MainWindowViewModel/>
    </Window.DataContext>
    <Grid>
        <ComboBox HorizontalAlignment="Left" Margin="378,142,0,0" VerticalAlignment="Top" Width="120" ItemsSource="{Binding Item_source}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}"/>
        <TextBlock HorizontalAlignment="Left" Margin="378,187,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Text="{Binding SelectedItem}"/>
    </Grid>
</Window>
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using System.Web;

namespace MainWindow_ViewModel
{
    class MainWindowViewModel:INotifyPropertyChanged
    {

        private string[] item_source = { "6dB/oct", "12dB/oct", "18dB/oct", "24dB/oct", "30dB/oct", "36dB/oct", "42dB/oct", "48dB/oct" };
        private string selectedItem;

        public string[] Item_source
        {
            get { return item_source; }
        }

        public string SelectedItem
        {
            get { return selectedItem; }
            set
            {
                selectedItem = value;
                OnPropertyChanged(nameof(SelectedItem));
            }
        }

        //固定
        public event PropertyChangedEventHandler PropertyChanged;

        protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }

    }
}

也可以block绑定单独一个属性,像之前那样

        public string SelectedItem
        {
            get { return selectedItem; }
            set
            {
                selectedItem = value;
                OnPropertyChanged(nameof(SelectedItem));
                OnPropertyChanged(nameof(SelectedItemDisplay));
            }
        }

        public string SelectedItemDisplay => SelectedItem;
        <ComboBox HorizontalAlignment="Left" Margin="378,142,0,0" VerticalAlignment="Top" Width="120" ItemsSource="{Binding Item_source}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}"/>
        <TextBlock HorizontalAlignment="Left" Margin="378,187,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Text="{Binding SelectedItemDisplay}"/>


http://www.kler.cn/a/505406.html

相关文章:

  • 前端常见的设计模式之【单例模式】
  • 一文读懂高频考题!进程、线程、协程最全方位对比剖析
  • 【Vue3 入门到实战】1. 创建Vue3工程
  • 【Vue3 入门到实战】3. ref 和 reactive区别和适用场景
  • 在 Azure 100 学生订阅中新建 Ubuntu VPS 并通过 Docker 部署 pSQL 服务器
  • 如何选择Ubuntu版本
  • APP推荐:全新TV端来了,8K原画电视版
  • iOS - 底层实现中涉及的类型
  • 计算机网络之---SSL/TLS协议
  • 人工智能任务20-利用LSTM和Attention机制相结合模型在交通流量预测中的应用
  • Excel 技巧09 - 通过IF筛选数据,并给对象单元格赋值背景色 (★)
  • maven 安装jar到本地仓库和上传至远程仓库
  • Java开发防止SQL注入攻击
  • 深度学习的超参数
  • dockerfile实现lnmp
  • 深度学习-卷积神经网络实战文档注释
  • 【精选】基于EfficientViT优化YOLOv8的智能车辆识别系统设计 车辆颜色分类与车牌检测、深度学习目标检测系统开发
  • MySQL(高级特性篇) 07 章——InnoDB数据存储结构
  • 在一个地方待多久才会改变ip属地
  • openmetadata二次开发之前端汉化
  • 【excel】VBA股票数据获取(搜狐股票)
  • xilinx FPGA 平台实现数字信号 -- 低通滤波
  • word添加参考文献并批量上标
  • ASP.NET Core - IStartupFilter 与 IHostingStartup
  • 【网络 MAC 学习专栏 -- 如何理解 PHY 的 Link Up】
  • 《数据思维》之数据可视化_读书笔记