Как отобразить модули кода (.cs) в виде элементов в списке? - PullRequest
0 голосов
/ 08 мая 2019

В настоящее время я работаю над новым графическим интерфейсом, в котором список является ключевым элементом. До сих пор мне удалось отобразить и выбрать несколько элементов в этом списке, что было не так уж сложно.

Моя цель - иметь несколько .cs файлов (возможно, в дальнейшем расширении файлов сценариев als vb) в папке в проекте , которые правильно отображаются в списке основного вида. и будет выполнен, если выбран соответствующий элемент в списке.

До сих пор я пытался построить список и все остальные элементы графического интерфейса (кнопки, текст, ...) и связал список со связываемой коллекцией модели скрипта (которая является собственным классом для целей тестирования в момент и должен быть заменен правильными .cs файлами)

В приведенном ниже коде вы можете увидеть обход этого пользовательского класса и проверку выбора для нескольких элементов списка.

private void Run_Click(object sender, RoutedEventArgs e)
        {
            //Show user the scripts which are being processed, these are the previous selected Scripts
            List<string> selectedList = new List<string>();
            foreach (ScriptModel selectedScript in MainListBox.SelectedItems)
            {
                selectedList.Add(selectedScript.Name.ToString());
            }
            //check if no Script was selected, and if so, just return/do nothing
            if (selectedList.Count() == 0) { return; }
            MessageBox.Show("The following Scripts will be processed: " + Environment.NewLine +
                    string.Join(Environment.NewLine, selectedList));


           //Call the Connection for Data-Export 

        }
private BindableCollection<ScriptModel> _scriptscollection=new BindableCollection<ScriptModel>();

public BindableCollection<ScriptModel> ScriptsCollection
        {
            get { return _scriptscollection; }
            set { _scriptscollection = value; }
        }

Я хотел бы знать, как я могу заменить (или соединить) эти пользовательские классы с действительными файлами .cs (которые являются своего рода скриптами) в папке проекта, чтобы я мог отображать эти имена файлов и выберите соответствующие файлы для исполнения. (поэтому соединение должно работать в обе стороны)

Извините, если этот вопрос кажется немного странным и общим, но я действительно смущен этим.

1 Ответ

0 голосов
/ 08 мая 2019

Я полагаю, вы слишком усложнили вопрос. Вот код, который найдет все файлы .cs в каталоге, а затем при выборе одного из них в ListBox запустит этот файл.

Трудно точно сказать, о чем вы просите, но, надеюсь, это поможет.

XAML

<ListBox ItemsSource="{Binding ScriptFiles}" SelectedItem="{Binding SelectedScript}"/>

Код позади / ViewModel

public List<string> ScriptFiles => Directory.GetFiles(FilePath, "*.cs").ToList();

private string selectedScript;
public string SelectedScript
{
    get { return selectedScript; }
    set { selectedScript = value; Process.Start(value); }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...