I 다음 위젯 (및 첨부 한 도면)가 감안할. 위젯은 다음과 같습니다 "호스팅"뷰 모델 :바인딩리스트 박스 (위젯)
public class WidgetWorkspaceViewModel : Screen
{
private Screen myWidget = new MyWidgetViewModel();
public Screen MyWidget
{
get { return myWidget; }
set { myWidget = value; }
}
}
그리고 컨트롤이 같은 WidgetWorkspaceView에 표시됩니다 :
<ContentControl x:Name="OneWidget"/>
이 모두 잘 작동합니다. 하지만 이제는 WidgetWorkspaceViewModel에 위젯 모음이 포함될 수 있도록 WidgetWorkspaceViewView를 차례대로 변경해야합니다. 그리고이 문제를 해결하는 데 몇 가지 문제가 있습니다.
는 뷰 모델은 다음과 같이 가정한다 : 나는 콤보 상자에 위젯을 바인더 제본 한 및 콤보 상자가 제대로 컨트롤의 목록을 보여주기 때문에 코드의
private List<Screen> widgets;
public List<Screen> Widgets
{
get { return widgets; }
set { widgets = value; NotifyOfPropertyChange(() => Widgets); }
}
이 부분은 OK입니다. 그러나보기에 위젯을 "호스팅"하는 데 문제가 있습니다. 중단 점을 바탕으로
<ListBox x:Name="Widgets">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<ContentControl Width="100" Height="100" DataContext="{Binding}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
, 데이터 바인딩 부분은 OK 노력하지만 내가 그려 위젯을받지 못했습니다 :이 내가 WidgetWorkspaceView에 있지만 성공하지 않고 사용하려 한 XAML입니다.
어떻게 해결할 수 있습니까? 바인딩을 돕기 위해 Caliburn.Micro를 사용하고 있습니다.
우수 감사합니다. ItemTemplate 정의를 제거하여 문제를 해결했으며 대신 지휘자를 사용할 것입니다. –