[英]How can I use Listbox items with WPF?
I am trying to learn Wpf.我正在尝试学习 Wpf。 When the program runs, it gives me the "no listbox source" error.
当程序运行时,它给了我“没有列表框源”错误。 I am working on a Wpf design but I just started.
我正在研究 Wpf 设计,但我才刚刚开始。
The features I have added to the listbox externally, how can I show them as sources.我在外部添加到列表框的功能,如何将它们显示为来源。 I have no idea about this.
我不知道这个。 I think I have been researching this for 2 hours but I have not found any answer.
我想我已经研究了 2 个小时,但没有找到任何答案。 I have some problems with English.
我有一些英语问题。 I hope I won't bother you.
我希望我不会打扰你。 All details of my codes are below.
我的代码的所有详细信息如下。 Thank you in advance for helping.
预先感谢您的帮助。
//Note : My Class : (public partial class MainWindow : Window)
public void btnListAdd_Click(object sender, RoutedEventArgs e)
{
CronList1.Items.Clear(); // ListBox <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
OpenFileDialog f = new OpenFileDialog();
if (f.ShowDialog().HasValue == true)
{
List<string> lines1 = new List<string>();
using (StreamReader r = new StreamReader(f.OpenFile()))
{
string line;
while ((line = r.ReadLine()) != null)
{
CronList1.Items.Add(line); // ListBox <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
}
}
}
}
2 : I then try to read all in the CronList. 2 : 然后我尝试读取 CronList 中的所有内容。 I run the method in the class.
我在类中运行该方法。
CronEvent cronEvent = new CronEvent();
Task.Run(cronEvent.Cron1);
3 :My Code Dont Run! 3 :我的代码不运行!
public async Task Cron1()
{
int sayix = 1;
while (true)
{
try
{
(HttpWebRequest) rq WebRequest.Create(mainWindow.CronList1.Items[sayix].ToString());
rq .Proxy = WebRequest.GetSystemWebProxy();
rq .AllowAutoRedirect = false;
rq .Timeout = 10000;
HttpWebResponse rply= (HttpWebResponse)rq.GetResponse();
StreamReader streamReader = new StreamReader(rply.GetResponseStream());
rply.Close();
streamReader.Close();
mainWindow.CronList1.SelectedIndex = sayix;
sayix++;
if (sayix == mainWindow.CronList1.Items.Count)
{
sayix = 0;
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
await Task.Delay(TimeSpan.FromSeconds(Convert.ToDouble(mainWindow.txtTime.Text)));
}
}
WPF Listbox Code WPF 列表框代码
<ListBox Name="CronList1" Height="390" Margin="2,7,4,0" VerticalAlignment="Top" BorderBrush="Red" Cursor="Arrow" IsSynchronizedWithCurrentItem="False" BorderThickness="1" ClipToBounds="True" SnapsToDevicePixels="True" Grid.Row="1" Grid.RowSpan="2" Grid.Column="1">
<ListBox.ItemBindingGroup>
<BindingGroup/>
</ListBox.ItemBindingGroup>
<ListBox.Effect>
<hc:BrightnessEffect/>
</ListBox.Effect>
</ListBox>
I would recomend using a "data binding" in a ViewModel to make the code more readable.我建议在 ViewModel 中使用“数据绑定”以使代码更具可读性。
You create a class (eg MainViewModel) and in there you create an ObservableCollection
where you add or remove items from.您创建一个类(例如 MainViewModel),然后在其中创建一个
ObservableCollection
,您可以从中添加或删除项目。
In the View (xaml file) you then add this ViewModel as a Source and use a Binding to add the items of the collection to your ListView.在视图(xaml 文件)中,您然后将此 ViewModel 添加为源并使用绑定将集合的项目添加到您的 ListView。
Let me know if you can't get it to work.如果您无法使用它,请告诉我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.