WPF ComboBox привязка данных xaml против кода - PullRequest
2 голосов
/ 20 мая 2011

Я ни в коем случае не эксперт по WPF, так что это, вероятно, очень просто.Я пытаюсь связать список со списком.Это работает в коде, это не работает в xaml.Если я удалю ItemsSource из конструктора, он не будет работать, как я знаю.Я думал, что у меня есть эквивалент в xaml, но, очевидно, это не так.

xaml:

    <ComboBox Height="23"
              HorizontalAlignment="Left"
              Margin="146,76,0,0"
              Name="comboBox1"
              VerticalAlignment="Top"
              Width="120"
              ItemsSource="{Binding AvailableActions}"
              DisplayMemberPath="Name"
              SelectedValuePath="Name"
              SelectedValue="Replace" />

конструктор:

    public MainWindow()
    {
        _availableActions = new List<IMapperAction>
                       {
                           new ReplaceAction(),
                           new CollapseAction(),
                           new NewBasedOnAction()
                       };

        InitializeComponent();
        Loaded += OnWindowLoaded;

        comboBox1.ItemsSource = AvailableActions;
    }

Ответы [ 2 ]

2 голосов
/ 20 мая 2011

Ну, вам нужно установить DataContext главного окна:

public MainWindow()
{
    _availableActions = new List<IMapperAction>
                   {
                       new ReplaceAction(),
                       new CollapseAction(),
                       new NewBasedOnAction()
                   };

    InitializeComponent();
    DataContext = this;
    Loaded += OnWindowLoaded;
}
0 голосов
/ 20 мая 2011

Как предлагается здесь, вы должны установить DataContext.

Вы также можете прочитать эту ссылку, чтобы узнать, почему и когда какой из двух следует использовать:

ПочемуDataContext и ItemsSource не являются избыточными?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...