wrt 데이터 바인딩 아래의 mvvm 패턴에서 무엇이 잘못 되었습니까?viewmodel에 DataGrid 바인딩
내가 보는 것은 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;
}
수정. 그런 디자인이 얼마나 이상합니다. – Gerard
:) 그래, 그들은 당신이 무엇이 아닌지 구성 할 것을 기대합니다. –