我想在我的程序中将自定义项添加到列表框中,所以我有这个xaml代码:
<ListBox Name="lb" Background="{x:Null}" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Text="{Binding Num}" Grid.Column="0" Grid.RowSpan="2" Grid.Row="0"/>
<TextBlock Text="{Binding Pth}" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="3"/>
<TextBlock Text="{Binding Name}" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="3"/>
<Button Content="{Binding EnterBtn}" Grid.Column="4" Grid.RowSpan="2"/>
</Grid>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我有这堂课:
public class Item
{
public string Pth { get; set; }
public string Num { get; set; }
public string Name { get; set; }
public string EnterBtn { get; set; }
}
在主窗口类我有这段代码:
string path_ = string.Format(@"C:\Users\{0}\Documents\folder path", Environment.UserName);
List<Item> itms = new List<Item>();
public MainWindow()
{
InitializeComponent();
string[] arr = Directory.GetFiles(path_, ".emi");
AddToList(arr);
}
private void AddToList(string[] a)
{
foreach(string s in a)
{
string fl;//first line
string sl; //second line
using(StreamReader read = new StreamReader(s))
{
fl = read.ReadLine();
sl = read.ReadLine();
}
itms.Add(new Item() { Num = (itms.Count + 1).ToString(), Name = sl, Pth = fl, EnterBtn = fl + sl });
}
lb.ItemsSource = itms;
}
我想要的只是阅读具有(.emi)扩展名的文本文件,并将该数据更新到列表框。
问题是没有任何反应,(。emi)文件确实存在。
我的代码中有任何问题
答案 0 :(得分:0)
".emi"
只会查找完整名称为".emi"
的文件。您想要"*.emi"
- *
表示“此部分可以是零个或多个字符的任何序列”。 That parameter is a "search pattern",而不是文件扩展名。
string[] arr = Directory.GetFiles(path_, "*.emi");