Привязка списка к списку - PullRequest
0 голосов
/ 27 июня 2010

Мой список не отображает элементы. Предметы в List<string>.

Вот xaml:

<DockPanel Margin="10,10,10,10">
    <DockPanel.Resources>
        <local:MyErrors x:Key="myErrors"/>
    </DockPanel.Resources>
    <ListBox DockPanel.Dock="Top" ItemsSource="{StaticResource myErrors}" Height="300" Width="250" Margin="0,5,0,10" 
        />

    <StackPanel DockPanel.Dock="Bottom" HorizontalAlignment="Center" VerticalAlignment="Bottom" Orientation="Horizontal">
        <Button Height="28" Click="buttonOK_Click" Margin="10,10,10,10" IsDefault="True" Name="buttonOK" Width="75">OK</Button>
        <Button Height="28" Click="buttonCancel_Click" Margin="10,10,10,10" IsCancel="True" Name="buttonCancel" Width="75">Cancel</Button>
    </StackPanel>

</DockPanel>

Я устанавливаю источник следующим образом:

DialogErrors dlg = new DialogErrors();
                    dlg.Owner = App.Current.MainWindow as Window;
                    dlg.MyErrors = myOtherClass.MyErrors;

Тогда у меня есть автоматическое свойство в диалоге. Это производный класс List<string>, тип и имя которого - MyErrors.

        public MyErrors MyErrors
    {
        get;
        set;
    }

enter code here

Ответы [ 2 ]

1 голос
/ 28 июня 2010

Ваши ресурсы указывают на новые ошибки MyErrors, а не на те, которые определены в диалоговом окне.

Просто избавьтесь от раздела ресурсов и привяжите напрямую к MyErrors:

<ListBox DockPanel.Dock="Top" ItemsSource="{Binding MyErrors}" Height="300" Width="250" Margin="0,5,0,10" />
0 голосов
/ 27 июня 2010

Вам следует использовать ObservableCollection для хранения строк ошибок.

Представляет собой динамический сбор данных, который предоставляет уведомления при добавлении, удалении или обновлении всего списка.

Это реализует интерфейсы INotifyPropertyChanged и INotifyCollectionChanged, которые уведомляют клиентов - в данном случае пользовательский интерфейс - об изменении свойства и коллекции.

Может показаться немного чрезмерным, если они не меняются в течение жизни программы, но она выполняет всю проводку, необходимую для первоначального обновления пользовательского интерфейса.

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