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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章