2011-01-25 13 views
1

私はNavigationBar.csユーザーコントロールを持っています。 私はNavigationItem.csユーザーコントロールも持っています。ここでこのイベントを処理する責任はどこに置かれますか?

は、両方のコードです:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Drawing; 
using System.Data; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace Uboldi.CustomUI 
{ 
    public partial class NavigationBar : UserControl 
    { 
     public NavigationBar() 
     { 
      InitializeComponent(); 
     } 

     public List<NavigationItem> NavigationItems { private get; set; } 
     public NavigationItem SelectedItem { get; set; } 
    } 
} 


using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Drawing; 
using System.Data; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace Uboldi.CustomUI 
{ 
    public partial class NavigationItem : UserControl 
    { 
     public NavigationItem() 
     { 
      InitializeComponent(); 
     } 

     private Image _picture = null; 
     public Image Picture 
     { 
      get 
      { 
       return _picture; 
      } 
      set 
      { 
       _picture = value; 
       ptbIcon.Image = _picture; 
      } 
     } 

     private string _content = null; 
     public string Content 
     { 
      get 
      { 
       return _content; 
      } 
      set 
      { 
       _content = value; 
       lblDisplayText.Text = _content; 
      } 
     } 
    } 
} 

私だけnavigationbarにおける単一NavigationItem任意の時点で「選択」することにしたいです。

アイテムを選択すると、別の色が与えられます。

私はこのコードをどこでプログラムする必要がありますか?バーで、またはそれは何かボタンが行うべきことであり、バーはそのSetYourSelfAsSelected()メソッドを呼び出すだけですか?

ありがとうございました。

+0

私の腸はNavigationBar.csのNavigationItemを返してくれるプロパティを持っていると、ちょっと怪しいです。たぶん文字列を返すべきでしょうか?何か案は? –

答えて

0

この機能をNavigationBarに実装する理由は次のとおりです。他の開発者の中には、アクティブなアイテムが表示されていないか、別のマークが付けられている別のコンテキストでNavigationItemを使用する可能性があります。または、アクティブなアイテムの別の動作を実装するためにNavigationBarに過負荷をかけたいとします。