그래서 Caliburn Micro Framework로 창 프로젝트를 만들었습니다. 내 목표는 프로그래밍 방식으로 Grid Row의 내용을 대체 할 수 있다는 것입니다. 아니면 그냥 내 그리드의 상단에 새 행을 추가, 그래서 대신에 그리드가 .xaml이 보이는 내가 3이 2 개 행을 갖는 :Caliburn Micro를 사용하여 변수에 격자 바인딩하기
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30"></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="{Binding Path=LocalizedResources.NGA, Source={StaticResource LocalizedStrings}}" Visibility="{Binding Path=ShowNoGolferMessage,Mode=TwoWay}"></TextBlock>
<ListBox Grid.Row="1" x:Name="lstSearch" ItemsSource="{Binding GolferList, Mode=TwoWay}">
<ListBox.ItemTemplate>
<DataTemplate>
//Long list of ListBox items.
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
그래서 내 생각 변수에 그리드를 결합했다 x를 사용하여 : 이름 :
<Grid x:Name="golfereGrid">
그러나 나는 그것을 작동시킬 수 없었다.
이<Grid DataContext="{Binding golfereGrid, Mode=TwoWay}">
그것은 두 경우 모두 내 golfereGrid가 null로 판명 중 하나가 작동하지 않았다 : 그럼 난 그리드의 DataContext에 바인딩을 설정했습니다. 내 golfereGrid은 다음과 같습니다 : 지금 약간의 시간이 고민 했어요
private Grid _golfereGrid;
public Grid golfereGrid
{
get { return _golfereGrid; }
set
{
_golfereGrid = value;
NotifyOfPropertyChange(() => golfereGrid);
}
}
, 내가 어떤 도움을 주셔서 감사합니다 것
좋아, 내가 ' 세미 솔루션을 발견했습니다. 그리드에서 3 행을 만들고 행 0과 1의 높이를 바인드 한 다음 행 1을 상단에 놓을 때 행 0 높이를 0으로 변경하고 행 1을 등 150으로 변경하십시오. 행 0이 필요할 때 150을 지정하면 높이와 행 1 0height에서. 누구든지 더 나은 해결책을 얻었습니까? – user2408952