2016-05-05 13 views
0

は、私が(FormEvents.cs)別のクラスファイル、xamlビューで作成されたコントロールにアクセスする方法は?

 DXTabItem myTabItem= new DXTabItem(); 
     myTabItem.Header = new Label() 
     { 
      Name= "lblTabAccountHeader", 
      Content = "MyTab" + Convert.ToString(UserID) 
     }; 

.CSにIダイナミックラベルを作成し、私は私の(AccountsDisplay.xaml)にラベル "lblTabAccountHeader" にアクセスし、配置ターゲットでのElementNameを結合としてそれを使用したい

<Popup x:Name="ClosingMenuPopMenuControl" PlacementTarget="{Binding ElementName=lblTabAccountHeader}" StaysOpen="False" PopupAnimation="Fade"> 

答えて

0

xamlのラベルにcsファイルから直接アクセスすることはできません。しかし、インターフェイスを実装し、INOTifyPropertyChangedを実行し、対応するプロパティが変更されたときにイベントPropertyChangedを発生させることは可能です。あなたは文字列プロパティでそれを達成することができます。

FormEvents.csあなたのクラスファイル内のプロパティの変更は、それはまたあなたのビューに反映されますしたがって

public class YourView 
{ 
    prvate FormEvents instance = new FormEvents(); 

    public YourView() 
    { 
     instance.SomeName.PropertyChanged += EventHandler; 

    } 

    private void EventHandler(object obj) 
    { 
     TextBoxinYourView.Text = instance.SomeName; 
    } 
} 

YouView.xaml.cs

public class FormEvents : BindableBase 
{ 
    private string someName; 
    public string SomeName 
    { 
     get {return someName;} 
     set { SetProperty(ref someName, value);} 
    } 

    public FormEvents() 
    { 
     DXTabItem myTabItem= new DXTabItem(); 
     myTabItem.Header = new Label() 
     { 
      Name= "lblTabAccountHeader", 
      Content = "MyTab" + Convert.ToString(UserID) 
     }; 
     SomeName = lblTabAccountHeader.Content; 
    } 
} 

関連する問題