Just drag a listbox control to the form and name it "listBox1".
Then assign data to the datasource ( here, I read an array of string from the file).
namespace DatatBindingDemo { public partial class Form1 : Form { public Form1() { InitializeComponent(); this.listBox1.DataSource = File.ReadAllText(@"C:\Users\Z\Desktop\DatatBindingDemo\Days.txt").Split(); } } }In WPF, you have to do it in another way.
There is no datasource in listbox.
First, in MainWindow.xaml.cs
using System.IO; using System.Windows; namespace WpfDataBindingDemo { public class MyData { public static string[] Days { get { return File.ReadAllText(@"C:\Users\Z\Desktop\WpfDataBindingDemo\Days.txt").Split(); } } } public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } } }
And in MainWindow.xaml
<Window x:Class="WpfDataBindingDemo.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfDataBindingDemo" Title="MainWindow" Width="525" Height="350"> <Grid> <ListBox ItemsSource="{Binding DataContext.Days, RelativeSource={RelativeSource Self}}"> <ListBox.DataContext> <local:MyData /> </ListBox.DataContext> </ListBox> </Grid> </Window>
Notice that first you have to add reference to CLR by xmlns:local
then attach MyData to listbox datacontext. (obtained from local)
finally bind the itemsource to the datacontext by using {Binding...}
p.s. It is not necessary to use the word local. You can use any word you like in xmlns:local.
0 件のコメント:
コメントを投稿