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}"/>
相关推荐
虚假程序设计3 小时前
python用 PythonNet 从 Python 调用 WPF 类库 UI 用XAML
python·ui·wpf
敢嗣先锋8 小时前
鸿蒙5.0实战案例:基于原生能力的深色模式适配
ui·移动开发·harmonyos·arkui·组件化·鸿蒙开发
柳鲲鹏11 小时前
Ubuntu编译jetlinks-ui-vue
vue.js·ui
架构文摘JGWZ2 天前
Sun-Panel:简洁且美观的导航首页开源项目!!
ui·开源·开源软件·工具
laimaxgg2 天前
Qt常用控件之单选按钮QRadioButton
开发语言·c++·qt·ui·qt5
类人_猿3 天前
PhotoShop批处理
ui·photoshop·批处理·photoshop批处理
PM大明同学3 天前
Axure PR 9 中继器 02 分页提示
ui·交互·产品经理·axure
十秒耿直拆包选手3 天前
cmake:定位Qt的ui文件
c++·qt·ui·cmake
engchina3 天前
使用 Vite + React 19 集成 Tailwind CSS 与 shadcn/ui 组件库完整指南
css·react.js·ui·vite·tailwind·react 19·shadcn
1024小神3 天前
ios苹果手机使用AScript应用程序实现UI自动化操作,非常简单的一种方式
运维·ui·自动化