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

固定最简步骤,包括

XAML:

题头里引入命名空间

标题下面引入类

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

C#:

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

引入字段

引入属性

其中资源是只读的

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

属性

block=>指向box的属性

这是最简形式

XML 复制代码
<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>
cs 复制代码
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绑定单独一个属性,像之前那样

cs 复制代码
        public string SelectedItem
        {
            get { return selectedItem; }
            set
            {
                selectedItem = value;
                OnPropertyChanged(nameof(SelectedItem));
                OnPropertyChanged(nameof(SelectedItemDisplay));
            }
        }

        public string SelectedItemDisplay => SelectedItem;
XML 复制代码
        <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}"/>
相关推荐
沫璃染墨17 小时前
《Qt从零入门系列(十四):QThread多线程详解——从线程创建到客户端阻塞处理》
开发语言·c++·笔记·qt·ui·交互·线程
特立独行的猫a2 天前
仓颉语言GUI开发实战:用仓颉写串口/网络二合一调试助手
网络·ui·gui·harmonyos·tauri·仓颉
wuyk5552 天前
PyQt6-第05讲-QtDesigner工作流与ui文件
python·ui·pyqt
Meta Luo2 天前
UI 自动化测试中的等待、超时和异步加载怎么处理
功能测试·测试工具·ui·回归·自动化
Light Gao2 天前
AI 对话助手如何实现动态交互?一文讲清 AG-UI、SSE、组件与工具调用
人工智能·ui·交互·大语言模型·sse·智能体·ag-ui
MicrosoftReactor3 天前
技术速递|当聊天框不再是合适的交互界面
ui·ai·copilot·canvas
秋名山小白3 天前
UI自动化-Airtest框架落地实战
运维·ui·自动化
const_qiu3 天前
第 2.5 章 2.5.8:质量关 —— 安全审查、UI/UX 审查与踩坑复盘
java·人工智能·安全·ui·ux
Autumn_ing3 天前
Design.md生成UI怎么验收?举例运营后台的颜色、状态和数据核对
前端·ui·ai·设计系统·paico·ai生成ui·design.md
特立独行的猫a3 天前
仓颉语言UI开发实战:我用仓颉写了个桌面版力扣
算法·leetcode·ui·tauri·仓颉·cj-tarui