wrtデータバインディングの下のmvvmパターンで何が間違っていますか?
DataGrid
余分な列と余分な行 (両方とも空) が表示されているのはなぜですか ?
そして、デフォルトで最初のアイテムを選択するようにビューを取得するにはどうすればよいですか?
ビューモデル:
public class Instance { public string Name { get; set; } }
public class BaseData
{
public ObservableCollection<Instance> Instances { get { return instances; } }
public BaseData()
{
var bw = new BackgroundWorker();
bw.DoWork += new DoWorkEventHandler(fetch);
bw.RunWorkerAsync();
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(fetched);
}
void fetch(){...}
void fetched(..){... // raise event 'Fetched' to the view }
}
ビュー (xaml):
<DataGrid AutoGenerateColumns="False" x:Name="dgInstances" ItemsSource="{Binding Instances}">
<DataGrid.Columns>
<DataGridTextColumn Header="Instance" Binding="{Binding Path=Name, Mode=OneWay}" />
</DataGrid.Columns>
</DataGrid>
ビュー (コード ビハインド):
BaseData BaseData;
public MainWindow()
{
InitializeComponent();
Loaded += delegate
{
BaseData = new BaseData();
BaseData.Fetched += basedata_fetched;
};
}
void basedata_fetched(...)
{
DataContext = BaseData;
}