Silverlight: вложенные контейнеры и переплет - PullRequest
0 голосов
/ 16 июля 2009

Бит сценария:

В один из элементов управления моего приложения Silverlight я встроил пользовательский элемент управления. В этом встроенном элементе управления есть еще один пользовательский элемент управления, содержащий сетку данных. Я хотел бы использовать привязку для заполнения сетки данных. Достаточно просто, я просто выделил коллекцию, которая находится в DataContext родительского элемента управления.

Родительская форма:

<UserControl x:Class="ParentControl"
             ...>
    <Grid x:Name="LayoutRoot" >        
        <ReusableControl />
    </Grid>
</UserControl>

Родительский код:

public partial class ParentControl: UserControl 
    {

        public ParentControl()
        {
            InitializeComponent();
            this.DataContext = ObjectCollection;
        }

        public ObservableCollection<object> ObjectCollection
        {
            get ;
            set ;
        }
    }

Промежуточная форма

<UserControl x:Class="ReusableControl"
             ...>
    <Grid x:Name="LayoutRoot" Background="Gold">        
        <CustomDataGrid />
    </Grid>
</UserControl>

Детский контроль:

<UserControl x:Class="CustomDataGrid"
             ...>
    <Grid x:Name="LayoutRoot">        
        <data:DataGrid x:Name="dgItems"
                       AutoGenerateColumns="True"
                       ItemsSource="{Binding ObjectCollection}"
                       >
        </data:DataGrid>
    </Grid>
</UserControl>

Бит вопроса:

Я хочу определить столбцы таблицы данных динамически, основываясь на другой коллекции в родительском элементе управления DataContext. Как я могу это сделать? Есть ли более одного способа снятия шкуры с этой кошки? *

Спасибо, Mark

* Ни один кот не пострадал при задании этого вопроса.

1 Ответ

0 голосов
/ 17 июля 2009

Через много часов я нашел обходной путь, который я разместил здесь . Это не кажется мне лучшим решением в мире, но оно работает и не требует регистрации обработчиков событий в приложении. Также это работает сверху вниз, что я и хотел.

Я подозреваю, что я мог бы использовать свойства зависимости немного лучше, чтобы избежать необходимости в DP и NP в одном классе, но у меня нет времени: - (

Надеюсь, это поможет кому-то еще.

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