在我看來,我有一個Combobox和一個TextBlock。 TextBlock通過在FormLoad上從名爲「MyViewModel」的ViewModel在XAML中的文本屬性上設置的DataBinding接收值。更改/切換WPF文本框的文本dataBinding在運行時
組合框具有的ItemSource和的SelectedItem,這是有界的,以性能在同一個視圖模型,即「MyViewModel」
現在,當我從視圖改變ComboBox的選擇,我想的組合框的一員SelectedItem的對象將在TextBlock中設置。
我如何做到這一點?即有辦法,我可以改變/切換TextBlock的文本的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}"/>
我怎樣才能改變/切換此COMBOX的的SelectedItem的屬性命名爲「文本2」和視圖模型的財產在運行時命名爲「文本1」之間的綁定?