Upgrade to Pro — share decks privately, control downloads, hide ads and more …

WPF勉強会 第3回 コレクションへのデータバインディング/WPFStudy3

WPF勉強会 第3回 コレクションへのデータバインディング/WPFStudy3

WPF勉強会 第3回 コレクションへのデータバインディング

説明後に実演するライブコーディングのコードはこちら。
https://github.com/hachiilcane/WpfStudy

Avatar for hachiilcane

hachiilcane

March 01, 2022
Tweet

More Decks by hachiilcane

Other Decks in Programming

Transcript

  1. DataTemplateద༻ྫ <ListBox x:Name="SimplyListBox" ItemsSource="{Binding SimplyList}"> <ListBox.ItemTemplate> <DataTemplate> <Border CornerRadius="0" BorderBrush="Black"

    BorderThickness="1"> <Grid Margin="3" Width="100"> <TextBlock Text="{Binding}"/> </Grid> </Border> </DataTemplate> </ListBox.ItemTemplate> </ListBox> public class AnimalsViewModel : ViewModelBase { public ObservableCollection<string> SimplyList { get; set; }
  2. DataTemplateͷͳ͔Ͱ͸ DataContext͕มΘΔ͜ͱʹ஫ҙ <ListBox ItemsSource="{Binding SimplyList}"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <TextBlock

    Text=“{Binding Species}"/> <TextBlock Text=“{Binding Name}"/> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox> public class AnimalsViewModel : ViewModelBase { public ObservableCollection<AnimalViewModel> SimplyList { get; set; } } public class AnimalViewModel : ViewModelBase { public string Species { get; set; } // ←INotifyPropertyChangedΛ࣮૷͍ͯ͠ͳ͍ͷͰ public string Name { get; set; }ɹ // ·͕ͪͬͨྫ͕ͩΠϝʔδͩͱࢥ͍ͬͯͩ͘͞ } public particle class MainWindow : Window { public MainWindow() { InitializeComponent(); this.DataContext = new AnimalsViewModel(); } } ViewModelଆ Viewଆ ͜Ε͸DataContextͷઃఆͷ࢓ํͱͯ͋͠·Γ ͍͍ྫͰ͸ͳ͍͕ɺ΋ͬͱ΋؆୯ͳ΍Γํ
  3. Ԡ༻ྫɿDataGrid ྻͷఆٛͷͳ͔ͰόΠϯυ͢Δ͜ͱ͕ଟ͍ <DataGrid ItemsSource="{Binding ServiceStatusList}" AutoGenerateColumns="False"> <DataGrid.Columns> <DataGridTextColumn Header="αʔϏε" Width="160"

    DisplayIndex="0" Binding="{Binding Name}"> </DataGridTextColumn> <DataGridTextColumn Header="Քಇঢ়ଶ" Width="80" DisplayIndex="1" Binding="{Binding Status}"> <DataGridTextColumn.ElementStyle> <Style TargetType="{x:Type TextBlock}" > <Setter Property="Margin" Value="2" /> <Setter Property="TextAlignment" Value="Center" /> </Style> </DataGridTextColumn.ElementStyle> </DataGridTextColumn> </DataGrid.Columns> </DataGrid>
  4. DataGridͱDataTableͷ ૬ੑ DB͔Βऔͬͨ஋Λͦͷ··ͲʔΜʂ DataTable dt = null; string connectionString =

    this.serverConnectionInfo.CreateBuilder().ConnectionString; using (SqlConnection con = new SqlConnection(connectionString)) { string query = “select * from aaaTable"; SqlCommand command = new SqlCommand(query, con); SqlDataAdapter a = new SqlDataAdapter(command); DataSet ds = new DataSet(); a.Fill(ds); dt = ds.Tables[0]; } this.LayoutRootGrid.DataContext = dt; <DataGrid ItemsSource="{Binding}"> </DataGrid>