在我看来,我有一个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”之间的绑定?