<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d" Title="MainWindow" Height="450" Width="800" Background="gray">
<Window.Resources>
<Style x:Key="TestMain"
TargetType="GroupBox">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate DataType="local:Model">
<Grid ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="100*" />
<RowDefinition Height="100*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50*" />
<ColumnDefinition Width="50*" />
</Grid.ColumnDefinitions>
<Label Content="제목"
Grid.Row="0"
Grid.Column="0"
FontSize="20"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"/>
<Label Content="바꿀 라벨"
x:Name="lbl_change"
Grid.Row="0"
Grid.Column="1"
FontSize="20"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"/>
<Button Content="바꾸기"
Grid.Row="3"
Grid.Column="0"
Margin="10,10,10,10"/>
<Button Content="지우기"
Grid.Row="3"
Grid.Column="1"
Margin="10,10,10,10"/>
</Grid>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<GroupBox Grid.Column="0"
x:Name="grp01"
Header="GroupBox"
Margin="10,10,10,10"
Background="White"
Style="{StaticResource TestMain}" />
<GroupBox Grid.Column="1"
x:Name="grp02"
Header="GroupBox"
Margin="10,10,10,10"
Background="White"
Style="{StaticResource TestMain}" />
</Grid>
</Window>
- 원하는 결과
** GroupBox안에 있는 양식을 여러번 사용해야 합니다. (3*3 9개를 배치)
** Window.ResourceDictionary에서 DataTemplate을 이용하여 여러번 재사용 가능
- ‘grp01’(좌측 groupbox)에서 ‘바꾸기’ 버튼 클릭 > 새 창을 띄워 값 입력받기
- 입력 받은 값을 'grp01’의 '바꿀 라벨’에 넣기
- 'grp01’의 ‘지우기’ 버튼 클릭시 'grp01’의 '바꿀 라벨’을 삭제됨으로 변경
- 'grp02’의 경우는 'grp02’에서만 동작
.
.
- 현재 문제
- 그룹박스마다 'DataTemplate’을 설정하여 Click 이벤트를 이용하면 가능하지만 Window.ResourceDictionary xaml을 만들어 사용하려니 어떤 버튼이 눌러졌는지 확인이 안되어 문제 발생 ('grp01’의 '바꾸기’인지 'grp02’의 '바꾸기’인지 확인을 못하고 있음)
- 혹시 DataTemplate이 아닌 다른 방식으로 GroupBox양식을 만들 방법이 있는지
.
혹시 이런 경우에 어떻게 사용하시나요?
현재 .net4.8 WPF 환경입니다.