Привязать выбранное значение к списку WPF - PullRequest
4 голосов
/ 24 февраля 2010

Я пытался искать это вверх и вниз, но ничего не могу найти. У меня есть выпадающий список. Представление списка связано со списком объектов, доступных через контроллер, с которым связан текстовый текст. Одним из свойств элементов в списке является строка. Я пытаюсь связать это значение с тем, что находится в выпадающем списке.

Вот фрагмент моего списка

<ListView ItemsSource="{Binding Path=OrderLines}" >

            <ListView.View>
                <GridView>
                    <GridViewColumn Header="Item Type" Width="Auto">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <ComboBox Width="100" SelectedItem="{Binding Path=LineType,ValidatesOnDataErrors=True}" >

                                    <ComboBoxItem>Type1</ComboBoxItem>
                                    <ComboBoxItem>Type2</ComboBoxItem>
                                    <ComboBoxItem>Type3</ComboBoxItem>
                                    <ComboBoxItem>Type4</ComboBoxItem>
                                </ComboBox>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>    
                </GridView>
             </ListView.View>

В контроллере у меня есть свойство OrderLines, подобное

    private List<OrderLine> orderLines;
    public List<OrderLine> OrderLines 
    { 
        get { return orderLines; }
        set
        {
            if (value == orderLines)
                return;

            orderLines= value;

            OnPropertyChanged("OrderLines");
        }
    }

И у OrderLine есть свойство LineType, представляющее собой строку, содержащую значение.

    private string lineType;
    public string LineType 
    {
        get { return lineType; }

        set
        {
            lineType= value;
            OnPropertyChanged("LineType ");
        }
    }

Может ли кто-нибудь помочь объяснить, почему выбранный элемент / значение не устанавливается. Это как-то связано с тем, что мой контент жестко закодирован? Спасибо за вашу помощь.

1 Ответ

5 голосов
/ 24 февраля 2010

Вероятно, это не привязка, потому что LineType является строкой, а ComboBox содержит ComboBoxItems и строку! = ComboBoxItem.

Попробуйте что-то по

 <ComboBox>
      <system:String>Item1</system:String>
      <system:String>Item2</system:String>
 </ComboBox>

, где система ссылается на пространство именСистема в mscorlib

...