【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;
        }
    }
}

這樣,就實現了在后台代碼中綁定相關的工作了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM