首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将代码模块(.cs)显示为列表框中的项?

如何将代码模块(.cs)显示为列表框中的项?
EN

Stack Overflow用户
提问于 2019-05-08 10:01:58
回答 1查看 66关注 0票数 0

我目前正在开发一个新的GUI,它将列表框作为其中的一个关键元素。到目前为止,我已经成功地在这个列表框中显示和选择了多项,这并没有什么大不了的。

我的目标是将几个.cs文件(可能是进一步扩展的als脚本文件)放在项目中的文件夹中,这些文件正确地显示在主视图列表框中,如果选择了列表框中的相应项,则将执行这些文件。

到目前为止,我已经尝试构建列表框和所有其他GUI内容(按钮、文本、.)并将列表框与脚本模型的可绑定集合连接起来(这是一个用于测试的类,应该用正确的.cs文件替换)

在下面的代码中,您可以看到这个自定义类的工作以及多个列表框项的选择检查。

代码语言:javascript
复制
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 

        }
代码语言:javascript
复制
private BindableCollection<ScriptModel> _scriptscollection=new BindableCollection<ScriptModel>();

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

我想知道如何用项目文件夹中的实际.cs文件(它们是某种脚本)替换(或连接)这些自定义类,以便显示这些文件名并选择相应的文件执行。(所以连接应该是双向的)

如果这个问题看起来有点奇怪和笼统,我很抱歉,但我真的很困惑。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-08 10:18:38

我相信你把事情弄得太复杂了。下面的代码将在一个目录中找到所有的.cs文件,然后在选择ListBox中的一个文件时启动该文件。

很难确切地知道你想要什么,但希望这能帮上忙。

XAML

代码语言:javascript
复制
<ListBox ItemsSource="{Binding ScriptFiles}" SelectedItem="{Binding SelectedScript}"/>

代码背后/ ViewModel

代码语言:javascript
复制
public List<string> ScriptFiles => Directory.GetFiles(FilePath, "*.cs").ToList();

private string selectedScript;
public string SelectedScript
{
    get { return selectedScript; }
    set { selectedScript = value; Process.Start(value); }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56038125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档