wpf 및 MVVM에서 아직 조금 익숙합니다. 그 패턴을 깨지 않고 솔루션을 코딩하려고합니다. 나는 두 개 (세 개 있지만이 질문의 범위는 두 개 뿐이다) DataGrid
s이다. 하나의 행을 두 번 클릭하고 그 데이터를 두 번째 DataGrid
에로드하고 싶습니다 (이상적으로는 데이터를로드하는 두 번째 스레드를 위로 돌릴 것입니다). 지금까지 행을 두 번 클릭하면 팝업 창이 열립니다. 이벤트의 코드를 xaml의 코드 뒤에 던졌습니다. 내게 그것은 매우 창문처럼 보인다. 어쩐지 또는 다른 내가 그 패턴을 큰 거래를 깨고 같은 느낌.행을 두 번 클릭하면 두 번째 DataGrid 채우기 WPF
<DataGrid ItemsSource="{Binding PopulationCollection}" Name="popDataGrid"
AutoGenerateColumns="False" RowDetailsVisibilityMode="VisibleWhenSelected"
CanUserAddRows="False" Margin="296,120,0,587" HorizontalAlignment="Left" Width="503" Grid.Column="1"
MouseDoubleClick="DataGrid_MouseDoubleClick">
</DataGrid>
나는 MainWindowViewModel에 가야이 코드를 생각하고 여기 뒤에 코드에서 이벤트에 대한 코드 및
private void DataGrid_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e) {
if (popDataGrid.SelectedItem == null) {
return;
}
var selectedPopulation = popDataGrid.SelectedItem as PopulationModel;
MessageBox.Show(string.Format("The Population you double clicked on has this ID - {0}, Name - {1}, and Description {2}", selectedPopulation.populationID, selectedPopulation.PopName, selectedPopulation.description));
}
는 XAML에서 그리드의 정의입니다.
public ICommand DoubleClickPopRow { get { return new DelegateCommand(OnDoubleClickPopRow); }}
와 같은 이벤트 핸들러를 : 그래서 나는 명령을 만들려고 시도하고는 DelegateCommand(OnDoubleClickPopRow)
을 반환 할 때
private void OnDoubleClickPopRow(object sender, MouseButtonEventArgs e) {
}
그러나 ICommand
는 예외를 던지고있다.
글쎄, 인수의 수가 일치하지 않는다는 것을 분명히 알 수 있습니다. 나는 잘못된 것을하고 있음을 알고 있지만 그것이 무엇인지는 확실히 모른다. 나는 이것을 계속 연구 할 것이지만 너희들이 줄 수있는 도움은 크게 감사 할 것이다.
어디에서이 코드를 추가 할 수 있습니까? 내 DataGridTextColumns 행 이전에 추가하려고했습니다. 그 이름 공간은 어떻습니까? 나는 그것이 그것을 찾을 수 없다는 것을 말하는 예외를 받고있다? 다운로드해야하는 DLL이 있습니까? – SoftwareSavant
나는 이것을 구현하는 방법에 대해 여전히 혼란 스럽다. 독서를 좀 제안 해 주시겠습니까? – SoftwareSavant
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=75e13d71-7c53-4382-9592-6c07c6a00207&displaylang=en 무료 SDK 다운로드 –