MVVM 패턴을 사용하는 동안 직사각형 인 레이아웃의 창에 뷰를 배치하려고합니다.MVVM을 사용하여 동적으로 생성 된 WPF 레이아웃
WinForms에서는 컨트롤의 동일한 속성을 설정하여 컨트롤 배치를 쉽게하기 위해 Rectangle의 너비, 높이, x 및 y를 사용할 수있었습니다.
이제 MVVM을 사용하여 wpf로이 코드를 다시 작성하고 있습니다.
이 내가 할 노력하고있어입니다 :
이 내가 일하는 줄 알았는데 뭔가 있지만 그렇지 않습니다.
<Grid ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ItemsControl ItemsSource="{Binding VirtualScreens}" Grid.IsSharedSizeScope="True" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Grid.Row="{Binding Row}" Grid.Column="{Binding Column}" Content="{Binding Name}"></Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
public class VirtualScreen : ObservableObject
{
string name;
int row;
int column;
public string Name
{
get { return name; }
set
{
name = value;
RaisePropertyChanged(() => Name);
}
}
public int Row
{
get { return row; }
set
{
row = value;
RaisePropertyChanged(() => Row);
}
}
public int Column
{
get { return column; }
set
{
this.column = value;
RaisePropertyChanged(() => Column);
}
}
}
은 UI와 같이이 요소를 레이아웃하는
WPF Grid을 사용할 수 있습니다 도움
죄송합니다에 대한 예입니다,하지만 당신은 좀 더 세부 사항을 제공해야합니다, 또는 아마도 윈폼 응용 프로그램의 스크린 샷은 우리에게 당신이하려는 것들에 대한 아이디어도 제공 달하다. –
StackOverflow에 질문을 게시하기 전에 [ "How To Ask"] (http://stackoverflow.com/help/how-to-ask)를 읽어보십시오. –
그리드는 이와 같이 레이아웃 될 수 있으며, 윈도우로 컨텐츠의 크기를 자동으로 조정합니다. 캔버스는 x, y, w, h 좌표계를 사용하여 컨트롤을 배치하지만 윈도우 크기 조정시 레이아웃을 업데이트해야합니다. 질문을하기 전에 작은 프로토 타입을 만들어보십시오. 원하지 않는 downvotes를 방지 할 수 있습니다. – Will