2025. 3. 5. 15:49ㆍ젬스it
WPF에서 `DialogResult`와 같은 속성은 기본적으로 제공되지 않습니다. 그러나 WPF에서는 `Window` 클래스를 사용하여 비슷한 기능을 구현할 수 있습니다.
`DialogResult`와 같은 기능을 구현하기 위해 `Window` 클래스의 `DialogResult` 속성을 사용할 수 있습니다. 이를 통해 모달 대화 상자가 닫힐 때 대화 상자의 결과를 반환할 수 있습니다.
예를 들어, 다음과 같이 구현할 수 있습니다:
1. **주 창(MainWindow)에서 대화 상자 열기:**
```csharp
private void OpenDialog_Click(object sender, RoutedEventArgs e)
{
var dialog = new MyDialog();
bool? result = dialog.ShowDialog();
if (result == true)
{
// OK 버튼이 클릭된 경우
MessageBox.Show("Dialog returned OK");
}
else
{
// Cancel 버튼이 클릭된 경우
MessageBox.Show("Dialog returned Cancel");
}
}
```
2. **대화 상자(MyDialog) 정의:**
```csharp
public partial class MyDialog : Window
{
public MyDialog()
{
InitializeComponent();
}
private void OKButton_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = true;
this.Close();
}
private void CancelButton_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = false;
this.Close();
}
}
```
3. **대화 상자 XAML 정의 (MyDialog.xaml):**
```xml
<Window x:Class="YourNamespace.MyDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MyDialog" Height="200" Width="400">
<Grid>
<Button Name="OKButton" Content="OK" HorizontalAlignment="Left" Margin="10" VerticalAlignment="Top" Width="75" Click="OKButton_Click"/>
<Button Name="CancelButton" Content="Cancel" HorizontalAlignment="Right" Margin="10" VerticalAlignment="Top" Width="75" Click="CancelButton_Click"/>
</Grid>
</Window>
```
이렇게 하면 WPF에서 `DialogResult`와 유사한 기능을 구현할 수 있습니다. 대화 상자가 닫힐 때 `DialogResult`를 설정하고, 호출한 주 창에서 그 결과를 확인할 수 있습니다.
'젬스it' 카테고리의 다른 글
wpf에서 csv파일 업로드시 UserControl 안에. UserControl 을 넣어서 코딩하는 예제 (0) | 2025.03.06 |
---|---|
wpf에서 oledb를 이용해서 엑셀파일을 업로드해서 해당 내용을 db에 넣는 방법은? (0) | 2025.03.05 |
NuGet (.nupkg) 패키지 설치하는 방법 (0) | 2025.03.04 |
엑셀 파일을 WPF 애플리케이션에서 업로드하고 데이터를 읽어와서 데이터베이스에 삽입하는 방법 (0) | 2025.02.28 |
`this.Dispatcher.BeginInvoke` 사용은 언제하나? (0) | 2025.02.20 |