Недавно начал изучать wpf поэтому могу задавать достаточно глупые вопросы. Итак есть DataGrid
<Page.DataContext>
<local:ClientPortfellVM />
</Page.DataContext>
//....
<DataGrid Margin="0,50,0,0" ItemsSource="{Binding collection}">
<DataGrid.Columns>
<DataGridTextColumn Header="Type" IsReadOnly="True" Width="*" Binding="{Binding Type}"/>
<DataGridTextColumn Header="Balance" IsReadOnly="True" MaxWidth="200" MinWidth="200" Binding="{Binding Balance}" />
</DataGrid.Columns>
</DataGrid>
который нужно заполнить строками. Вью моделью является вот такой класс :
public class ClientPortfellVM
{
public ObservableCollection<FundViewModel> collection = new ObservableCollection<FundViewModel>();
public class FundViewModel
{
public string Type { get; set; }
public string Balance { get; set; }
}
}
И теперь мне нужно, как я понимаю заполнить коллекцию примерно так :
collection.Add(new FundViewModel() { Type = "111", Balance = "222" });
Только куда её вписывать, если все написанное вообще правильно, не знаю - подскажите кто знает, а если неправильно поправьте пожалуйста.
Во-первых сделайте collection свойством, иначе привязка не пройдет:
public ObservableCollection<FundViewModel> Collection { get; set }
Свойства принято писать с заглавной буквы.
заполняете коллекцию в методе или напрямую из конструктора класса:
public class ClientPortfellVM
{
public ObservableCollection<FundViewModel> Сollection { get; set; }
public ClientPortfellVM()
{
Collection = new ObservableCollection<FundViewModel>();
Collection.Add(new FundViewModel() { Type = "111", Balance = "222" });
}
public class FundViewModel
{
public string Type { get; set; }
public string Balance { get; set; }
}
}
но у меня всего 2 столбца должно быть, а появляется целых 4
все дело в свойстве AutoGenerateColumns. По умолчанию оно установлено в true, что говорит что таблица автоматически генерирует столбцы в зависимости от того сколько свойств в классе. Установите его в false и все будет как надо:
<DataGrid Margin="0,50,0,0" ItemsSource="{Binding collection}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Type" IsReadOnly="True" Width="*" Binding="{Binding Type}"/>
<DataGridTextColumn Header="Balance" IsReadOnly="True" MaxWidth="200" MinWidth="200" Binding="{Binding Balance}" />
</DataGrid.Columns>
</DataGrid>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хочу написать одно приложение на c#, которое выдает информацию о ПКПошарив интернеты, нашел такую вещь System
Добавляю аудио файлы в ListBox нажатием на ButtonДалее срабатывает OpenFileDialog (код ниже)
Есть два класса Human и StudentПусть, Student наследуется от Human
Есть задача - программа проверки правописанияВ качестве словаря должен быть использован файл типа