App Designer で2つのドロップダウンリストを連動したい
    3 次查看(过去 30 天)
  
       显示 更早的评论
    
AppDesignerで試しにアプリを作っています。あるドロップダウンリストの結果に応じてもう一つのドロップダウンリストの中身を変えたいです。可能でしょうか?
0 个评论
采纳的回答
  Atsushi Ueno
      
 2022-10-6
        
      编辑:Atsushi Ueno
      
 2022-10-6
  
      可能です。具体的にはどのように連動させるのでしょうか?
2つのドロップダウンリストの項目数が同一で、同じ並びの項目になる様に連動する例を下記に示します。
下記の様に2つのドロップダウンリストのValueChangedコールバック関数を別々に定義し、「変更されていない側の項目」を、「変更された側の項目」と同じ並びになる様にインデックス番号で合わせてやれば良いのです。
    properties (Access = private)
        index % Description
    end
    % Callbacks that handle component events
    methods (Access = private)
        % Value changed function: DropDown2
        function DropDownValueChanged1(app, event)
            index = find(contains(event.Source.Items,event.Value)); % 変更された項目のインデックスを探す
            app.DropDown.Value = app.DropDown.Items{index}; % 相手のドロップダウンリスト項目を合わせる
        end
        % Value changed function: DropDown
        function DropDownValueChanged2(app, event)
            index = find(contains(event.Source.Items,event.Value)); % 変更された項目のインデックスを探す
            app.DropDown2.Value = app.DropDown2.Items{index}; % 相手のドロップダウンリスト項目を合わせる
        end
    end
または二者のコールバック関数を共通にし、どちらから呼ばれた場合でも両方の項目を設定すれば良いのです。
        % Value changed function: DropDown, DropDown2
        function DropDownValueChanged(app, event)
            index = find(contains(event.Source.Items,event.Value)); % 変更された項目のインデックスを探す
            app.DropDown.Value = app.DropDown.Items{index};   % 自分/相手のドロップダウンリスト項目を合わせる
            app.DropDown2.Value = app.DropDown2.Items{index}; % 自分/相手のドロップダウンリスト項目を合わせる
        end
更多回答(1 个)
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 App Designer を使用したアプリ開発 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

