Target: Windows Store Framework: MvvmCrossПривязка ContentPresenter к вложенным ViewModel не работает, как ожидалось
У меня есть MyViewModel, содержащий OtherViewModel как свойство.
public class OtherViewModel : MvxViewModel
{
public string Name { get; set; }
}
public class MyViewModel : MvxViewModel
{
public string Id { get; set; }
private OtherViewModel _theOther;
public OtherViewModel TheOther
{
get { return _theOther; }
set
{
_theOther = value;
RaisePropertyChanged(() => TheOther);
}
}
}
Когда я использую следующий вид (XAML, упрощенный)), содержание в ContentPresenter всегда будет нулевым (с использованием WinRTXamlToolkit.Debugging.DC.ShowVisualTree() для исследования)
<views:MvxStorePage>
<Grid>
<TextBlock Text="{Binding TheOther.Name}"/>
<ContentPresenter Content="{Binding TheOther}" ContentTemplate="{...}"/>
</Grid>
</views:MvxStorePage>
Однако, когда я определяю представление следующим образом (привязывая Content к TextBlock DataContext), он работает.
<views:MvxStorePage>
<Grid>
<TextBlock Name="tb" DataContext="{Binding TheOther}" Text="{Binding Name}"/>
<ContentPresenter Content="{Binding DataContext, ElementName=tb}" ContentTemplate="{...}"/>
</Grid>
</views:MvxStorePage>
Любая идея, почему?
Попробуйте использовать 'ContentControl' вместо того,' ContentPresenter'. –