0
我的代碼看起來是這樣的:不同的DataContext在ItemsControl中
<ItemsControl ItemsSource="{Binding Path=MTMngRoot.MTManager.MTCollection}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBox Text="{Binding Path=Name}" ToolTip="Name" Controls:TextBoxHelper.Watermark="Name" Grid.Column="0"/>
<ComboBox SelectedItem="{Binding Path=DefaultCT}" Grid.Column="1">
<ComboBoxItem>Item 1</ComboBoxItem>
<ComboBoxItem>Item 2</ComboBoxItem>
</ComboBox>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
此代碼工作正常。但是現在我想綁定來自ComboBox
的Itemssource
。我的問題是,應該綁定到ComboBox
的Items
的Path
完全不同。 Path
看起來像這樣:CTMngRoot.CTManager.CTCollection.Name
。任何想法我可以做到這一點?
感謝您的回答!我有一些問題。我忘了寫我在'xaml.cs'文件('this.DataContext = this.MngRoot;')中設置'Main'-Datacontext'。這個類中有兩個實例('CTMngRoot'和'MTMngRoot')。 現在我將你的代碼添加到我的ComboBox中。現在看起來像這樣: ' ' 它不這樣工作。 –
MyNewName
您沒有正確傳輸我的解決方案。 'RelativeSource'使得你的綁定源成爲一個控件,因此你需要綁定到'Path'開頭的'DataContext'來訪問數據。另外,綁定'ComboBox.DataContext'是一個壞主意,你應該直接綁定像我所示的ItemsSource,否則你將無法綁定SelectedItem。 –
謝謝!現在它工作了。你犯了一個錯誤。你寫了'{Binding DataComtext.CTMngRoot ...'我認爲它必須被稱爲'{Binding DataContext.CTMngRoot ...'。 謝謝agaiN! – MyNewName