首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

WPF 入門:將 TextBox 用戶輸入以逗號分隔存入數組並綁定顯示

     編輯:程式設計疑難解答

場景描述

WPF 窗口中有 TextBox,用戶輸入如 10,20,30,40,點擊按鈕後將其解析為 string[] 或 int[] 供後續邏輯使用。

最簡單實現(代碼後置)

// XAML

MVVM 模式下的正規做法

// ViewModel
public class MainViewModel : INotifyPropertyChanged {
    private string _inputText;
    public string InputText {
        get => _inputText;
        set { _inputText = value; OnPropertyChanged(); }
    }

    public ObservableCollection ParsedNumbers { get; } = new ObservableCollection();

    public ICommand ParseCommand => new RelayCommand(Parse);

    private void Parse() {
        ParsedNumbers.Clear();
        if (string.IsNullOrWhiteSpace(InputText)) return;
        foreach (var s in InputText.Split(',')) {
            if (int.TryParse(s.Trim(), out int v)) ParsedNumbers.Add(v);
        }
    }
    // INotifyPropertyChanged 實現省略...
}
<!-- XAML 綁定 -->
<TextBox Text="{Binding InputText, UpdateSourceTrigger=PropertyChanged}" />
<Button Content="解析" Command="{Binding ParseCommand}" />
<ListBox ItemsSource="{Binding ParsedNumbers}" />

控件訪問核心概念

  • x:Name:在代碼後置中直接訪問控件實例(this.txtInput)。
  • Binding:MVVM 中數據雙向綁定,無需在代碼中查找控件。
  • DataContext:設置窗口/頁面的 DataContext 為 ViewModel 實例,建立綁定上下文。

新手常見疑問解答

  1. 怎麼把控件寫入 MainWindow 函數?:不需要「寫入」,XAML 編譯後自動生成同名字段,在 InitializeComponent() 後即可直接用 this.控件名 訪問。
  2. 控件之間怎麼調用?:代碼後置直接用字段名;MVVM 下通過 ViewModel 共享數據,控件互不引用。
  3. 控件事件怎麼綁定代碼?:XAML 中 Click="方法名" 或 Command="{Binding 命令}"。

代碼截圖1 代碼截圖2

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved