2011-08-08 5 views
0

私は1つの文字列を1つのTextBoxにバインドする方法を知っています。それはそれを行うことができる方法は次のとおりです。MVCを使用しているときにWPFでグリッドをバインドする方法は?

C#:

namespace WpfApplication4 
{ 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 
      DataContext = Model; 
     } 

     public ModelClass Model = new ModelClass(); 

     private void button1_Click(object sender, RoutedEventArgs e) 
     { 
      Model.Output += "Setting New Output! "; 
     } 

     public class ModelClass : INotifyPropertyChanged 
     { 
      string _output; 
      public event PropertyChangedEventHandler PropertyChanged = 
         delegate { };  
      public string Output 
      { 
       get { return _output; } 
       set { _output = value; 
        PropertyChanged(this, 
            new PropertyChangedEventArgs("Output")); 
       } 
      } 
     } 
    } 
} 

XAML:

<Window x:Class="WpfApplication4.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <Button Content="Button" VerticalAlignment="Top" 
       Name="button1" Click="button1_Click" /> 
     <TextBox VerticalAlignment="Bottom" 
        Name="textBox1" Text="{Binding Path=Output}" /> 
    </Grid> 
</Window> 

しかし、私は2次元配列をバインドする方法を見つけることができない(またはリスト)をグリッドまたはDataGridに追加します。あなたはそれで私を助けることができますか?私はSOの実例を見つけることができませんでした。

答えて

1

あなたはcolumnDataは、テーブルの列ごとに1つのプロパティを持つクラスですList<ColumnData>としてデータを保存できると仮定すると、あなたの2次元配列を表示するには、DataGridのを使用することを検討してください。

WPF SDKにはDataGridが含まれています。追加機能があるベンダーのデータグリッドがいくつかあります。

+0

しかし、どのようにバインディングを行うのですか? –

+0

列は自動生成されるか、またはどのフィールドをどの順序で明示的に定義するかを指定できます。 DataGridのサンプルを調べて、開始方法の詳細を確認してください。 –

1

データグリッドにデータをバインドする場合は、次のことについてお読みください。

ICollectionViewに、BindingListCollectionView

あなたがコレクションのsomekindを持っている場合は、単にのItemsSourceを設定します。

<DataGrid ItemsSource="{Binding Path=MyCollection, Mode=OneWay}" /> 

コレクション型は、ほとんどのObservableCollectionまたはデータセット/ DataTableのです。コレクションで編集などがサポートされている場合は、DataGridでコレクションを行うことができます。

関連する問題