728x90
반응형
개발환경 : VS 2022 / C# / WPF / Prism (MVVM Tool) / MaterialDesign (Design Tool) 으로 작성하였습니다.
- MainView.xaml
<DataGrid
AutoGenerateColumns="False" IsReadOnly="False" CanUserAddRows="False"
FontSize="13"
materialDesign:DataGridAssist.CellPadding="5 5 5 3"
materialDesign:DataGridAssist.ColumnHeaderPadding="10 8 2 5"
ItemsSource="{Binding LoraDataItemSource}">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Lora Name">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox
BorderThickness="0"
Text="{Binding LoraName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
TextAlignment="Center"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="전압 [V]">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox
BorderThickness="0"
Text="{Binding LoraVoltage, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
TextAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="전류 [A]">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox
BorderThickness="0"
Text="{Binding LoraCurrent, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
TextAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
- LoraDataIS.cs
public class LoraDataIS : BindableBase
{
private string loraName;
private string loraVoltage;
private string loraCurrent;
public string LoraName
{
get => loraName;
set => SetProperty(ref loraName, value);
}
public string LoraVoltage
{
get => loraVoltage;
set => SetProperty(ref loraVoltage, value);
}
public string LoraCurrent
{
get => loraCurrent;
set => SetProperty(ref loraCurrent, value);
}
}
반응형
- MainViewModel.cs
public class MainViewModel : BindableBase
{
private ICollectionView loraDataItemSource;
public ICollectionView LoraDataItemSource
{
get => loraDataItemSource;
set => SetProperty(ref loraDataItemSource, value);
}
public ObservableCollection<LoraDataIS> loraDatas { get; set; } = new ObservableCollection<LoraDataIS>();
public MainViewModel()
{
LoraDataItemSource = CollectionViewSource.GetDefaultView(loraDatas);
Initialize();
}
private void Initialize()
{
for (int i = 0; i < 10; i++)
{
loraDatas.Add(new LoraDataIS()
{
LoraName = $"Lora {i + 1}",
LoraVoltage = "",
LoraCurrent = "",
});
}
}
}
- 결과

728x90

728x90
반응형
'C# > WPF (MVVM)' 카테고리의 다른 글
[C# / WPF / MVVM / Prism] DataGrid Binding #2 - 수정 (1) | 2024.07.15 |
---|---|
[C# / WPF / MVVM / Prism] ListBox, ListView 선택한 아이템 찾기 (2) | 2024.06.23 |
[C# WPF] Textblock Binding (텍스트블럭 바인딩) (0) | 2023.07.26 |
[C# WPF / MVVM] 이벤트 바인딩 (Event Binding) (0) | 2023.07.25 |
[C# WPF / MVVM] 콤보박스 데이터 바인딩 (Combobox Data Binding) #2 (0) | 2023.07.25 |