Fork me on GitHub

【WPF】后台代码实现绑定ComboBox的SelectedItem功能

WPF 开发程序目前最好的用的设计模式为MVVM模式,实现了前后端的分离,前端页面的更改不需要后台代码逻辑发生变化,同理,后台逻辑发生变化时基本上也不需要修改前台的页面布局等信息。

由于某些原因,可能导致项目不是完全按照MVVM模式进行设计了,这是要在想要使用WPF中的Binding功能,可能就需要在后台代码逻辑中进行实现。
小编在开发过程中由于项目不是严格按照MVVM模式进行设计的,因此Binding功能的实现就要使用编写代码的方式进行实现了。
问题:要在后台代码中实现ComboBox的选择项发生变化时,在类中定义的一个用于记录SelectedItem的属性要跟着变化。这个就只能在后台代码逻辑中实现
解决:

namespace CodeBehindBinding
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        private ObservableCollection<string> _ItemsSources = new ObservableCollection<string>()
        {
            "A","B","C","D","E"
        };
                public string SelectedStringItem { get; set; }
        public MainWindow()
        {
            InitializeComponent();

            CodeBindingComboBox.ItemsSource = _ItemsSources;
            //Binding 工作
            var binding = new Binding()
            {
                Path = new PropertyPath(nameof(SelectedStringItem)),//要绑定的属性,必须是public类型
                Source=this//定义属性所在的类
            };
            //设置绑定
            CodeBindingComboBox.SetBinding(ComboBox.SelectedItemProperty, binding);
        }

        /// <summary>
        /// 验证绑定是否成功
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CodeBindingComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            var s = SelectedStringItem;
        }
    }
}

这样,就实现了在后台代码中绑定相关的工作了。

posted @ 2022-04-21 13:56  芝麻科技  阅读(1177)  评论(0编辑  收藏  举报
SesameTech