我有一个while循环:
int a = 0;
while (list_Level[a] < Initial_Lvl)
{
var dOpt = new DataGridObjectOpt();
dOpt.ImageSource = new Uri(filePaths[a], UriKind.RelativeOrAbsolute);
a++;
}
通过这种方式,我可以从filePaths
的文件夹中获取图像,但除非我更改名称,否则我无法控制它们的顺序。
我想以下一个while循环为例:(我有3个图像名为&#34; apple.jpg&#34;,&#34; orange.jpg&#34;,&#34; banana.jpg&# 34)
int a = 0;
string[] name = ['apple','orange','banana']
while (a < 2)
{
var dOpt = new DataGridObjectOpt();
dOpt.ImageSource = new Uri(string.Format("{0}.jpg", name[a]); UriKind.RelativeOrAbsolute);
a++;
}
但我仍然希望它像以前一样在文件路径中搜索这些图像。
谢谢。
答案 0 :(得分:0)
您必须使用以双引号定义的字符串初始化字符串数组,并且需要用大括号替换这些方括号:
string[] name = {"apple", "orange", "banana"};
您还需要使用逗号替换ImageSource
作业中的分号:
dOpt.ImageSource = new Uri(string.Format("{0}.jpg", name[a]), UriKind.RelativeOrAbsolute);
最后,您在DataGridObjectOpt
语句中声明了while
个对象,因此它们只有在您进入循环时才存在,这意味着您的代码并不是真的在做任何东西。
当我们无法说出你真正想要做什么时,它几乎不可能给你一个答案。你对这些dOpt
对象的计划是什么?
这是我对你的解决方案的最佳猜测。它会根据您定义的Uri
和filePath
列表创建name
个对象列表。然后,您可以稍后使用它来分配DataGridObjectOpt
对象ImageSource
属性:
var imageSourceUris = new List<Uri>();
for (int i = 0; i < Initial_Lvl; i++)
{
imageSourceUris.Add(new Uri(filePaths[i], UriKind.RelativeOrAbsolute));
}
string[] names = {"apple", "orange", "banana"};
foreach (var name in names)
{
imageSourceUris.Add(new Uri($"{name}.jpg", UriKind.RelativeOrAbsolute));
}
// Now you have a list of Uris that you can assign to
// different DataGridObjectOpt object ListSource properties
// This example just creates a bunch of them and assigns the property
var dataGridOptions = new List<DataGridObjectOpt>();
foreach (var imageSourceUri in imageSourceUris)
{
dataGridOptions.Add(new DataGridObjectOpt {ImageSource = imageSourceUri});
}