반응형

안녕하세요, 츄르 사려고 코딩하는 집사! 코집사입니다.

C# WPF 프로그래밍 유저 컨트롤을 구현하려면, 유저 컨트롤을 추가해줘야 합니다.

방법은 아래와 같습니다.

 

1-(1) User Control xaml 소스 코드

<UserControl x:Class="user.ContactControl"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

xmlns:local="clr-namespace:user"

mc:Ignorable="d"

d:DesignHeight="90" d:DesignWidth="200">

    <Grid>

        <StackPanel Background="LightGray"

                         Margin="10">

        <TextBlock x:Name="nameTextBlock"

                       Text="Name"

                       FontSize="20"

                       FontWeight="Bold"/>

        <TextBlock x:Name="emailTextBlock"

                       Text="Email"

                       FontSize="15"

                       Foreground="DodgerBlue"/>

        <TextBlock x:Name="phoneTextBlock"

                       Text="Phone"

                       FontSize="15"

                       FontStyle="Italic"/>

 

        </StackPanel>

    </Grid>

</UserControl>

 

1-(2) MainWindow xaml 소스 코드

<Window x:Class="user.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:user"

mc:Ignorable="d"

Title="MainWindow" Height="450" Width="800">

    <ListBox>

        <local:ContactControl x:Name="myContact"/>

        <local:ContactControl/>

        <local:ContactControl/>

    </ListBox>

</Window>

 

2. 이벤트 함수(User control)

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Navigation;

using System.Windows.Shapes;

 

namespace user

{

/// <summary>

/// ContactControl.xaml에 대한 상호 작용 논리

/// </summary>

public partial class ContactControl : UserControl

{

private Contact contactdata;

public Contact ContactData // 밖으로 노출 시킬 property

{

get

{

return ContactData;

}

set

{

contactdata = value;

nameTextBlock.Text = contactdata.Name;

emailTextBlock.Text = contactdata.Email;

phoneTextBlock.Text = contactdata.Phone;

}

}

public ContactControl()

{

InitializeComponent();

}

}

public class Contact

{

public string Name { get; set; }

public string Email { get; set; }

public string Phone { get; set; }

}

}

 

 

2-(2) MainWindow 이벤트 함수

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Navigation;

using System.Windows.Shapes;

 

namespace user

{

/// <summary>

/// MainWindow.xaml에 대한 상호 작용 논리

/// </summary>

public partial class MainWindow : Window

{

public MainWindow()

{

InitializeComponent();

Contact contact = new Contact(); // 객체 생성

contact.Name = "조용구";

contact.Email = "12345";

contact.Phone = "1234";

 

myContact.ContactData = contact;

 

}

}

}

 

 

3. 결과

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기