Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .cs:
- public partial class MainWindow : Window
- {
- public MainWindow()
- {
- InitializeComponent();
- }
- }
- class StringHolder
- {
- public string[][] data;
- public int i, j;
- public string Value
- {
- get => data[i][j];
- set => data[i][j] = value;
- }
- }
- class MainVM
- {
- string[][] data;
- public IEnumerable<IEnumerable<StringHolder>> Data =>
- Enumerable.Range(0, data.Length)
- .Select(i => Enumerable.Range(0, data[i].Length)
- .Select(j => new StringHolder()
- { data = data, i = i, j = j }));
- public MainVM(string[][] data) { this.data = data; }
- }
- public partial class App : Application
- {
- protected override void OnStartup(StartupEventArgs e)
- {
- base.OnStartup(e);
- // давайте чем-то заполним наш массив
- var data = new string[5][];
- var words =
- ("Если я что-нибудь в чём-нибудь понимаю, то дыра — это нора, " +
- "а нора — это Кролик, а Кролик — это подходящая компания, " +
- "а подходящая компания — это такая компания, где меня чем-нибудь " +
- "угостят и с удовольствием послушают мою Ворчалку.")
- .Split()
- .Where(w => w.Any(char.IsLetter))
- .Select(w => w.Trim('.', ','))
- .ToList();
- var ysize = words.Count / data.Length;
- int widx = 0;
- for (int i = 0; i < data.Length; i++)
- {
- data[i] = new string[ysize];
- for (int j = 0; j < ysize; j++)
- data[i][j] = words[widx++];
- }
- MainVM vm = new MainVM(data);
- new MainWindow() { DataContext = vm }.Show();
- }
- }
- App.xaml:
- <Application x:Class="Test.App"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
- </Application>
- MainWindow.xaml:
- <Window x:Class="Test.MainWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- mc:Ignorable="d"
- Title="Тест" Height="350" Width="525">
- <Grid>
- <ItemsControl ItemsSource="{Binding Data}">
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <ItemsControl ItemsSource="{Binding}">
- <ItemsControl.ItemsPanel>
- <ItemsPanelTemplate>
- <UniformGrid Rows="1" IsItemsHost="True"/>
- </ItemsPanelTemplate>
- </ItemsControl.ItemsPanel>
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <TextBox Text="{Binding Value}"/>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- </Grid>
- </Window>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement