Silverlight 4 Combox без привязки C # - PullRequest
1 голос
/ 15 января 2011

У меня есть страница Silverlight, к которой я привязываю объект.

При первой загрузке страницы все поля со списком заполняются, и они показывают правильный выбранный элемент.Когда я обновляю страницу, поля со списком все еще содержат свои элементы, но выбранное значение не связывается.

Связано с помощью

SelectedValue="{Binding WriterID,Mode=TwoWay}"
Article.DataContext = ActiveArticle

Обновление: при изменении я вижу потерю привязкиdatacontext of the control Есть идеи почему?

1 Ответ

3 голосов
/ 15 января 2011

Как я указал в своем комментарии, это известная проблема.Мне не удалось найти нужную ссылку, но я обнаружил этот отчет об ошибке в Microsoft Connect

. Решение состоит в том, чтобы сбросить выражение привязки при изменении выбора.Код в отчете делает это в подклассе ComboBox, но если вы не можете переопределить ComboBox в своем приложении, вы можете сделать это в классе представления.

public class XComboBox : ComboBox 
{ 
    private BindingExpression bE; 
    public XComboBox() 
    { 
        this.SelectionChanged += new SelectionChangedEventHandler(XComboBox_SelectionChanged); 
    } 

    void XComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
        if (bE==null) 
        { 
         bE = this.GetBindingExpression(ComboBox.SelectedValueProperty); 
        } 
        else 
        { 
            if (this.GetBindingExpression(ComboBox.SelectedValueProperty) == null) 
            { 
             this.SetBinding(ComboBox.SelectedValueProperty, bE.ParentBinding);     
            } 
        } 
    } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...