Я новичок в Caliburn Micro, пытаюсь экспортировать DataGrid в Excel, передав DataGrid в качестве параметра команде
Переданный аргумент методу всегда равен нулю, поэтому я получаю исключение нуля
Вот код XAML:
<DataGrid x:Name="grdPeople" ItemsSource="{Binding Path=People}"/>
<Button cal:Message.Attach="[Event Click] = [Action btnExportToExcel(grdPeople)]" />
мой ViewModel:
public class ShellViewModel : PropertyChangedBase
{
private ObservableCollection<Person> people;
public ObservableCollection<Person> People
{
get { return people; }
set
{
people = value;
NotifyOfPropertyChange(() => People);
}
}
public ShellViewModel()
{
People = new ObservableCollection<Person>();
people.Add(new Person { FirstName = "Zico", LastName = "Ayoub" });
people.Add(new Person { FirstName = "Fibi", LastName = "Victor" });
people.Add(new Person { FirstName = "Matthew", LastName = "Zakaria" });
people.Add(new Person { FirstName = "Marco", LastName = "Zakaria" });
}
public void btnExportToExcel(DataGrid dg)
{
string fileName = @"d:\myfile.csv";
dg.SelectAllCells(); // Error Here (Object reference not set to an instance of an object)
dg.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader;
ApplicationCommands.Copy.Execute(null, dg);
String resultat = (string)Clipboard.GetData(DataFormats.CommaSeparatedValue);
String result = (string)Clipboard.GetData(DataFormats.Text);
dg.UnselectAllCells();
System.IO.StreamWriter file1 = new System.IO.StreamWriter(fileName);
file1.WriteLine(result);
file1.Close();
}
}
Я ожидаю, что будет получен экземпляр DataGrid, но я получил нулевой DataGrid