سعاد نشر 24 فبراير 2016 أرسل تقرير نشر 24 فبراير 2016 على تطبيق بلغة #C، بتقنية WPF، أودّ ملأ أداة Combobox بقيم مُستخرجة من ملف نصي. حاولت فعل ذلك باستعمال الكود : <ComboBox x:Name="serverTxt" Height="23" VerticalAlignment="Top" Text="{Binding Path=ServerNames}"/> حيث مررت مسار الملف النصي إلى القائمة المُنسدلة، على أساس أنها ستقوم بإدراج قيمه كقيم لها. الكود لا يعمل، فهل من حل لذلك؟ اقتباس
0 E.Nourddine نشر 25 فبراير 2016 أرسل تقرير نشر 25 فبراير 2016 السيناريو المتوقع في مثل هذه الوظائف، هو تصفح الملف النصي عن طريق دالة التكرار forEach ثم إضافة العناصر إلى القائمة المنسدلة انطلاقا من الملف النصي. هذا المثال التطبيقي، يتيح لك عمل ذلك، حيث يتم التأكد من وجود الملف النصي قبل الشروع في تصفحه: الكود المختص بـ Combobox: <ComboBox x:Name="comboBox" HorizontalAlignment="Left" Margin="149,43,0,0" VerticalAlignment="Top" Width="120" IsEditable="True" ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}" Text="{Binding NewItem, UpdateSourceTrigger=LostFocus}"/> <ComboBox x:Name="comboBox1" HorizontalAlignment="Left" Margin="349,122,0,0" VerticalAlignment="Top" Width="120"/> الدالة المسؤولة عن إضافة القيم من الملف النصي: public partial class MainWindow : Window { private string _selectedItem; private ObservableCollection<string> ServerNames; private string fileLocation = @"C:\Temp\ServerNames.txt"; public MainWindow() { ServerNames = new ObservableCollection<string>(); if (File.Exists(fileLocation)) { var list = File.ReadAllLines(fileLocation).ToList(); list.ForEach(ServerNames.Add); } DataContext = this; InitializeComponent(); } public IEnumerable Items => ServerNames; public string SelectedItem { get { return _selectedItem; } set { _selectedItem = value; OnPropertyChanged("SelectedItem"); } } public string NewItem { set { if (SelectedItem != null) { return; } if (!string.IsNullOrEmpty(value)) { ServerNames.Add(value); SelectedItem = value; } } } protected void OnPropertyChanged(string propertyName) { var handler = this.PropertyChanged; handler?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } public event PropertyChangedEventHandler PropertyChanged; private void Window_Closing(object sender, CancelEventArgs e) { if (!File.Exists(fileLocation)) { File.Create(fileLocation); } File.WriteAllLines(fileLocation, ServerNames); } } اقتباس
السؤال
سعاد
على تطبيق بلغة #C، بتقنية WPF، أودّ ملأ أداة Combobox بقيم مُستخرجة من ملف نصي.
حاولت فعل ذلك باستعمال الكود :
حيث مررت مسار الملف النصي إلى القائمة المُنسدلة، على أساس أنها ستقوم بإدراج قيمه كقيم لها.
الكود لا يعمل، فهل من حل لذلك؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.