Microsoft/Windows Store에 UWP 앱이 게시되어 있고 반복 된 코드가 많아 코드를 단순화하고 싶습니다. 내 응용 프로그램 (항상 동일한 이름)과 디자인 변경 사항에 여러 번 나타나는 버튼이 있지만 코드는 항상 동일합니다 (이벤트 버튼을 클릭하십시오). 코드 중복을 피하기 위해 버튼을 한 번 클릭하고 원하는 곳에서 사용할 수 있도록 이벤트 코드를 작성할 수 있습니까?UWP 앱 (C#) - 동일한 코드 클릭 이벤트 버튼
-1
A
답변
1
정말 쉽습니다. 코드가있는 공유 메서드를 만들고 각 Button의 처리기에서 각 단추의 이벤트 처리기를 호출하면됩니다.
예 :
당신은 3 개 버튼
<Page
x:Class="App2.MainPage"
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"
mc:Ignorable="d">
<StackPanel Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Button x:Name="Button1" Click="Button1_OnClick"></Button>
<Button x:Name="Button2" Click="Button2_OnClick"></Button>
<Button x:Name="Button3" Click="Button3_OnClick"></Button>
</StackPanel>
</Page>
와의
코드 숨김 파일 (MainPage.xaml.cs를) 나는 당신이 얻을 수 있다고 생각public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
private void Button1_OnClick(object sender, RoutedEventArgs e)
{
ButtonHandlers.Handle(sender, e);
}
private void Button2_OnClick(object sender, RoutedEventArgs e)
{
ButtonHandlers.Handle(sender, e);
}
private void Button3_OnClick(object sender, RoutedEventArgs e)
{
ButtonHandlers.Handle(sender, e);
}
}
internal static class ButtonHandlers
{
public static void Handle(object sender, RoutedEventArgs routedEventArgs)
{
// This is shared!
}
}
있는 페이지가 아이디어. 어쨌든 MVVM 아키텍처 패턴을 살펴 봐야합니다. 단추에 이벤트 처리기를 추가하는 것은 UWP 또는 WPF와 같은 XAML 기반 응용 프로그램에서 작동하는 방법이 아닙니다.
+0
이 경우 모든 버튼이 동일하게 나타 납니까? –
+0
그들은 물론 동일합니다. 논리는 각 단추의 처리기 안에 코드를 복사하는 대신 Handle 메서드 안에 있습니다. 목표는 코드를 읽고 이해하기 쉽도록하면서 중복을 줄이는 것입니다. – SuperJMN
코드없이 질문에 어떻게 대답해야한다고 생각합니까? – Sefe
물론, 코드를 일종의 서비스 클래스에 넣고 호출하면됩니다. 나는 그 질문을 오해하고 있는가? – amnesia