2016-11-23 5 views
0

私はC#とWPFで数独アプリケーションを作成しています。これまでのTextboxでグリッドを取得しましたが、今は配列の配列([][])で塗りつぶしたいと思います。配列値をテキストボックスにバインドする

私の最初のテストでは、これを手動で行う方法が見つかりました。 XAML:

<TextBox> Text="{Binding Path=Testarr[0][0]}" Name="testbox"></TextBox> 

と私のxaml.csで:

testbox.DataContext = this; 

だから今、私のテキストボックスがTestarrに初期化された値を表示[0] [0]。

私の数独には81個のテキストボックスがありますが、それらをすべて手動で初期化したくないのですが、単純な方法がありますか?

+0

はい。 MVVM。 ItemsControlはItemTemplateを使用します。しかし、それは何かを学ぶ必要があるので、バインディングを持つすべてのXAMLを生成するためのperlスクリプトを作成してください。 –

答えて

1

hereここではItemsControlを使用してグリッドを作成する方法を示します。

<ItemsControl ItemsSource="{Binding MyCollection}"> 
     <!-- ItemsPanelTemplate --> 
     <ItemsControl.ItemsPanel> 
         <ItemsPanelTemplate> 
             <UniformGrid Columns="2" /> 
         </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 
  
     <!-- ItemTemplate --> 
     <ItemsControl.ItemTemplate> 
         <DataTemplate> 
             <Button Content="{Binding }" /> 
         </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 
+0

このセルからユーザー入力を読み取ることはできますか? – NoIdea123

+0

TwoWayバインディングを使用すると、ユーザー入力は自動的に一致するビューモデルインスタンスに設定されます。 – Vincent

関連する問題