2013-10-28 5 views
0

У меня есть ListView заявил так:выпадающий связывания в ListViewItem

<ListView x:Name="lvRSU" Margin="3" Background="#84978F" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ItemsSource="{Binding rsus}"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <Grid Grid.Row="0" VerticalAlignment="Center"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="90"/> 
        <ColumnDefinition Width="240"/> 
        <ColumnDefinition Width="40"/> 
        <ColumnDefinition Width="40"/> 
        <ColumnDefinition Width="110"/> 
        <ColumnDefinition Width="100"/> 
       </Grid.ColumnDefinitions> 
       <Label Content="{Binding Name}" ContentStringFormat="{}{0} Path" VerticalAlignment="Center" /> 
       <TextBox Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="2,0,0,0"/> 
       <Button Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center" Width="22" Height="22" MaxHeight="22" MaxWidth="22" ToolTip="Open .rsu file" SnapsToDevicePixels="True"> 
         <Image Source="Resources/Folder16.png" Stretch="Uniform" ></Image> 
       </Button> 
       <CheckBox Grid.Column="3" Content="En" VerticalAlignment="Center"/> 
       <ComboBox ItemsSource="{Binding sensorTypes}" Grid.Column="4" HorizontalAlignment="Stretch" VerticalAlignment="Center"> 
        <ComboBox.ItemTemplate> 
          <DataTemplate> 
           <TextBlock Text="{Binding}"/> 
          </DataTemplate> 
        </ComboBox.ItemTemplate> 
       </ComboBox> 
       <CheckBox Grid.Column="5" Content="{Binding Name}" ContentStringFormat="Inv {0}" VerticalAlignment="Center" Margin="2,1,1,1"/> 
       </Grid> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

и в .cs файл у меня есть следующее соединение:

public ReadOnlyObservableCollection<string> _sensorTypes = 
     new ReadOnlyObservableCollection<string>(new ObservableCollection<string>() { "1", "2"}); 

public ReadOnlyObservableCollection<string> sensorTypes 
{ 
    get { return _sensorTypes; } 
} 

также я установить DataContext для моего ListView :

lvRSU.DataContext = this; 

Но я не могу получить элементы в своем поле со списком вообще. Может быть, есть проблема, потому что она находится внутри сетки?

Это нормально, я получил его сейчас.

ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=ListView},Path=DataContext.sensorTypes}" 

Это сделало разницу. Я перейду в DataContext ListView, который в какой-то момент содержит мой combobox, и я устанавливаю путь оттуда. Благодарю.

+0

выпадающий список заполнен ни с чем вообще? – sexta13

+0

@ sexta12, все пустые –

+0

у вас есть ItemsSource = "{Binding rsus}" в listView. что такое rsus? Имеет ли это прокси-сенсоры? привязка должна быть более четкой, чем та, что в вашем решении! – sexta13

ответ

0

Я не могу найти что-то не так в вашем коде. Итак, мое предложение состоит в том, что вы можете использовать этот метод для отладки привязки данных: Debug DataBinding using IValueConverter

Надеюсь, что вы можете найти ошибку и рассказать всем. Удачи!

0

Я думаю, что это может быть:

lvRSU.DataContext = this.sensorTypes; 

или предпочтительно привязать его в XAML, как вы заметили:

ItemsSource="{Binding sensorTypes, RelativeSource={RelativeSource AncestorType=ListView}}" 
Смежные вопросы