#c Wpf DataBinding

时间:2018-06-25 14:48:24

标签: c# wpf

我有一个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"/>

但这不起作用。 你有什么主意吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

绑定到SelectedItem的{​​{1}}属性:

ComboBox

...或将 <ComboBox x:Name="combo" ... /> <TextBox ... Text="{Binding Path=SelectedItem.Comment, ElementName=combo}" /> 的{​​{1}}属性和SelectedItem的{​​{1}}属性绑定到视图模型的ComboBox属性,并在此属性的设置器中引发Text事件。