私の見解では、私はコンボボックスとTextBlockを持っています。 TextBlockは、FormLoadの "MyViewModel"という名前のViewModelから、XAMLのTextプロパティに設定されたDataBindingを介して値を受け取ります。WPFテキストボックスのテキストデータの変更/実行時のバインド
コンボボックスには、私はビューからのコンボボックスの選択を変更すると、私はコンボボックスのメンバーが欲しいすなわち「MyViewModel」今
、ViewModelに同じでプロパティにバインドされItemSourceとのSelectedItemを、持っていますTextBlockに設定されるSelectedItemのオブジェクト。
どうすればいいですか?実行時の状況に応じて、何らかの形でTextBlockのTextのDataBindingプロパティを「MyViewModel」からさまざまなソース/プロパティに切り替えることができますか? またはこれをどのようにして最善に解決できますか?
public class AllTexts
{
public int ID {get;set;}
public string Text1{get;set;}
public string Text2{get;set;}
}
public class MyViewModel:INotifyPropertyChanged//Assume the interface has been implemented.
{
private string p_Text1;
private AllTexts p_SelectedRec;
public string Text1
{
get{return p_Text1;}
}
set
{ if(p_Text1!=value)
{
p_Text1=value;
RaisePropertyChanged("Text1");
}
}
public List<AllTexts> ALT;
public AllTexts SelectedRec
{
get{return p_SelectedRec;}
}
set
{ if(p_SelectedRec!=value)
{
p_SelectedRec=value;
RaisePropertyChanged("SelectedRec");
}
}
public MyViewModel()
{
ALT=new List<AllTexts>();//Assume this List gets populated
}
}
MainWindow.Xaml(ビュー)
<ComboBox x:Name="cmbSelectText" ItemsSource="{Binding ALT}" DisplayMemberPath="Id" SelectedValuePath="Id" SelectedItem="{Binding SelectedRec}" SelectedValue="{Binding SelectedRec.Id,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<TextBlock x:Name="txtTextSpecimen" Text="{Binding Text1,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
どのように私は、これは "テキスト2" という名前COMBOXののSelectedItemのプロパティと、実行時に "テキスト1" という名前のViewModelのプロパティとの間の結合を切り替える/変更できますか?