c# - 填充营地后的 WPF 操作
问题描述
我对 c# 很陌生,尤其是对于带有接口的应用程序。我查看了示例或指南,WPF
但它们太简单了。这是我要做的:
1)一个按钮来浏览目录和选择文件;
2) aListbox
和 atextBox
将使用先前选择的文件名的信息填充;
3) 仅在填写时才通过网络信息重命名这些Listbox
文件textbox
。
第 1) 点和第 2) 点已完成:我在单击按钮事件中编写了必要的代码。我正在考虑在里面为第 3 点编写代码,MainWindow
但是这些代码行是在我可以选择文件之前执行的,然后还没有任何数据。
简单的解决方案可能是将其余代码也插入到单击按钮事件中,但我认为这很可怕。目前我无法理解在WPF
应用程序的 MAIN 中写什么。代码是:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void webLink_Click(object sender, RoutedEventArgs e)
{
System.Diagnostics.Process.Start("http://www.battlecraft.it/");
}
private void loader_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Multiselect = true;
ofd.ShowDialog();
listBox1.Items.Clear();
string[] files = ofd.FileNames;
string[] filenames = new string[files.Length];
for (int i=0; i<files.Length; i++)
{
filenames[i] = System.IO.Path.GetFileNameWithoutExtension(files[i]);
listBox1.Items.Add(filenames[i]);
}
if (listBox1.Items.Count != 0)
{
string SeEp = Regex.Match(filenames[0], @"\d+\w\d+").Value;
string[] str = Regex.Split(filenames[0], @"\d\d\w+\d\d");
string titolo = str[0].Replace(".", " ");
MatchCollection m = Regex.Matches(SeEp, @"\d\d");
titleBox.Text = titolo;
seasonBox.Text = "stagione " + m[0].Value;
int episode = int.Parse(m[1].Value);
}
}
}
解决方案
我刚刚学习了绑定的概念,这应该可以解决我的问题。将 startBtn 的 IsEnabled 属性绑定到 listbox1 和 listbox2 的 Length 应该在它们为空时禁用按钮,否则启用它。
我只在 startBtn 和 listbox1 之间创建了一个简单的绑定,如下所示:
<Button x:Name="startBtn" Content="Rinomina" HorizontalAlignment="Left" Margin="255,79,0,0" VerticalAlignment="Top" Width="75" Height="36" IsEnabled="{Binding ElementName=listBox1, Path=Text.Length}"/>
它无需在 c# 中添加任何代码行即可工作。我应该使用 MultiBinding 但我无法理解传递 2 个文本框的语法。是否也可以不使用c#编写任何代码?
推荐阅读
- python - Kedro:如何从命令行传递“列表”参数?
- python - 无限循环中的电子邮件监控。有什么缺点/更好的想法吗?
- c# - 使用 C# 和 Selenium 在非结构化时如何获取元素及其值
- python - 从文本中获取书目列表及其计数 - Python
- android - 如何判断 .so 是否适用于 android 和正确的 arm 版本?
- python - 创建熊猫数据帧时如何预分配内存
- javascript - 在 AJAX 成功函数中切换表单(通过 DOM 选择)时获取空值
- c++ - 将 cout 添加为友元运算符后,c++ 仍然显示错误 1)cout is ambiguous 。为什么?
- jquery - 在添加/删除类之前添加额外的 160 像素?
- python - 提取文本并写入新的 Word 文件