私はMicrosoft/Windows Storeで公開されたUWPアプリを持っています。私は多くの繰り返しコードを持っています。アプリケーションに何度も表示されるボタン(常に同じ名前)とデザインの変更がありますが、コードは常に同じです(イベントボタンをクリックします)。重複するコードを避けるために、ボタンを一度クリックしてどこでも使用できるイベントコードを記述できますか?UWP app(C#) - 同じコードクリックイベントボタン
-1
A
答えて
1
これは本当に簡単です。コードで共有メソッドを作成し、各ボタンのハンドラで、各ボタンのイベントハンドラから呼び出すだけです。
例:
あなたは私はあなたが得ることができると思う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
関連する問題
- 1. UWP Windows C#App BackgroundTask
- 2. 音楽ライブラリリストApp - UWP/C#
- 3. c#バックグラウンドタスクとクラスライブラリ(uwp app)
- 4. UWP App Extensions
- 5. C++ UWP Appを使用したAzure App Servicesとの統合
- 6. 2 Heroku App同じデータベース
- 7. UWP BackgroundTask on App update
- 8. UWP JavaScriptのAPP:パラメータ
- 9. UWPとWP8.1の同じアプリのログイン - どちらのSID?
- 10. win 10用の非同期ソケットライブラリUAP/UWP(Universal App)?
- 11. C#UWP - 同じソリューションでプロジェクトへの参照を追加できません
- 12. in-app-calendar for Windows 10 UWP
- 13. UWPメトロノームApp - MediaPlayerElementトランスポートコントロールとパフォーマンス
- 14. UWPのチャートWindows 10 App
- 15. 同じDjango Appの異なるバージョン
- 16. IOS Music Appと同じナビゲーションバーのトランジション
- 17. React.JS react-create-appバックエンド同じポート
- 18. C++のexternと同じC#
- 19. C#でUWP APPでflvを再生するには?
- 20. C++:同じオブジェクトの
- 21. UWP appのカスタムフォントが動作しない
- 22. 部分コンテンツC#UWP
- 23. 同じコードのVisual Studio 2015複数のuwpアプリケーション
- 24. 同じng-appとng-controllerを同じページに複数回表示mvc view
- 25. 同じOSインスタンスに同じバージョンのWindows 10 Universal Appを2バージョンインストールする
- 26. C#UWPクラスライブラリをC#UWPクラスライブラリに追加する
- 27. c#appとActive Directoryの同期
- 28. Xamarin.Forms:スタイリングはUWP、WinPhoneでは同じではありません
- 29. 同じマシン上に2つのローカルuwpアプリケーションを接続
- 30. 同じコードで同じコードを同じコードで実行するC#関数
コードなしで質問にどのように答えるべきだと思いますか? – Sefe
確かに、コードを何らかのサービスクラスに入れて、それを呼び出します。私はその質問を誤解していますか? – amnesia