我有一个ClsStationModel类
public class ClsStationModel : INotifyPropertyChanged
{
public string FilePath { get; set; }
public ObservableCollection<Station> Stations { get; set; }
...
}
该班级包含另一个班级
public class Station
{
public String Name { get; set; }
public bool IsHistoricalServer { get; set; }
public ObservableCollection<NetworkInterface> NetWorkInterface { get; set; }
public string Comment { get; set; }
}
我想将组合框绑定到Station。我是那样做的:
public partial class MainWindow : Window
{
ClsStationModel StationModel = new ClsStationModel();
public MainWindow()
{
InitializeComponent();
this.DataContext = StationModel;
}
...
}
在xaml中,它做到了并且有效:
<ComboBox x:Name="comboBox" ItemsSource="{Binding Stations, Mode=TwoWay}" DisplayMemberPath="Name" HorizontalAlignment="Left" Margin="32,82,0,0" VerticalAlignment="Top" Width="120"/>
现在,我想添加一个文本框来显示“注释”,它位于我的Station类中,并取决于在组合框中选择的元素。
<TextBox HorizontalAlignment="Left" Height="23" Margin="188,81,0,0" TextWrapping="Wrap" Text="{Binding Path= /Comment}" VerticalAlignment="Top" Width="120"/>
但这不起作用。 你有什么主意吗?
谢谢。
答案 0 :(得分:0)
绑定到SelectedItem
的{{1}}属性:
ComboBox
...或将 <ComboBox x:Name="combo" ... />
<TextBox ... Text="{Binding Path=SelectedItem.Comment, ElementName=combo}" />
的{{1}}属性和SelectedItem
的{{1}}属性绑定到视图模型的ComboBox
属性,并在此属性的设置器中引发Text
事件。