私は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. c#バックグラウンドタスクとクラスライブラリ(uwp app)
- 3. 音楽ライブラリリストApp - UWP/C#
- 4. なぜ私のListView ItemsSource null(uwp app c#)
- 5. C++ UWP Appを使用したAzure App Servicesとの統合
- 6. UWP App Extensions
- 7. Windowsインク - UWP App
- 8. UWP Appのテーブル
- 9. 2 Heroku App同じデータベース
- 10. UWP BackgroundTask on App update
- 11. UWP JavaScriptのAPP:パラメータ
- 12. UWP App WebUIApplication.onresuming not fireing
- 13. UWPとWP8.1の同じアプリのログイン - どちらのSID?
- 14. win 10用の非同期ソケットライブラリUAP/UWP(Universal App)?
- 15. C#のUWP XmlSerialization
- 16. C#UWP - 同じソリューションでプロジェクトへの参照を追加できません
- 17. React.JS react-create-appバックエンド同じポート
- 18. ラベルを取得アニメーションPhibrow Appと同じ
- 19. IOS Music Appと同じナビゲーションバーのトランジション
- 20. 同じDjango Appの異なるバージョン
- 21. C++のexternと同じC#
- 22. C++:同じオブジェクトの
- 23. UWPメトロノームApp - MediaPlayerElementトランスポートコントロールとパフォーマンス
- 24. 設定UWPネイティブMessaggingのApp
- 25. in-app-calendar for Windows 10 UWP
- 26. UWP App does not show画像
- 27. UWPのチャートWindows 10 App
- 28. C#でUWP APPでflvを再生するには?
- 29. UWP appのカスタムフォントが動作しない
- 30. 部分コンテンツC#UWP
コードなしで質問にどのように答えるべきだと思いますか? – Sefe
確かに、コードを何らかのサービスクラスに入れて、それを呼び出します。私はその質問を誤解していますか? – amnesia