У меня есть UserControl, давайте назовем это «MyUserControl», многоразовые по проекту, как это:Как игнорировать родительский контейнер в UserControl?
<WrapPanel>
<TextBlock Text="{Binding}" />
<ComboBox ItemsSource="{Binding}" />
</WrapPanel>
Теперь я использую пользовательский элемент управления под названием «TwoColumnGrid» нашли в CodeProject. Полный Article. короткая версия http://www.codeproject.com/KB/WPF/TwoColumnGrid/child-ordering.png И я это делаю:
<Custom:TwoColumnGrid>
<MyUserControl />
<TextBlock />
<TextBox />
</Custom:TwoColumnGrid>
Как он, TwoColumnGrid не работает. Я хочу заставить его думать, что MyUserControl - это два элемента, которые он содержит. Таким образом:
<Custom:TwoColumnGrid>
<TextBlock Text="{Binding}" />
<ComboBox ItemsSource="{Binding}" />
<TextBlock />
<TextBox />
</Custom:TwoColumnGrid>
Я пробовал играть с визуальным рисунком, добавляя его программно и создавая объект исключительно программно. Удалось, чтобы он работал, удаляя и добавляя к детям, но привязка не работала, что она делала с помощью XAML.
Возможно, хорошие люди SO могут помочь, любые идеи?
EDIT: Я использую MyUserControl более одного раза на TwoColumnGrid. Как так:
<Custom:TwoColumnGrid>
<MyUserControl />
<TextBlock />
<TextBox />
<MyUserControl />
</Custom:TwoColumnGrid>
У меня нет опыта работы с WPF, но я бы предположил, что вы * не можете заставить его думать, что это два элемента, потому что это * не *. И если предположить, что это может сломать ваш код позже, если вы добавите третий элемент в пользовательский элемент управления (возможно, скрытое поле?). – Bobson
Не уверен в этом, создавая их по коду за ним, но привязки никогда не застревали, хотя на XAML они работали. Скрытое поле не будет работать, usercontrol все равно будет считаться одним элементом. – user3195132