2
我正在构建一个wp7应用程序。Silverlight 4:用一点逻辑显示数据的模式?
我有一个UserControl
,显示新闻文章标题,预告片和图像。整个类是很短:
public partial class StoryControl : UserControl
{
public Story Story { get; private set; }
public StoryControl()
{
InitializeComponent();
}
internal StoryControl(Story story) : this()
{
this.Story = story;
Teaser.Text = story.Teaser;
Headline.Text = story.Title;
if (story.ImageSrc == null)
{
Thumbnail.Visibility = Visibility.Collapsed;
} else
{
Thumbnail.Source = new BitmapImage(story.ImageSrc);
}
}
}
以及相应的XAML:
<Grid x:Name="LayoutRoot" Background="Transparent" Margin="0,0,0,20">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image x:Name="Thumbnail" Grid.Column="0" Width="89" HorizontalAlignment="Left" VerticalAlignment="Top" />
<!-- sometimes there's a hanging word in the headline that looks a bit awkward -->
<TextBlock x:Name="Headline" Grid.Column="1" Grid.Row="0" Style="{StaticResource PhoneTextAccentStyle}" TextWrapping="Wrap" HorizontalAlignment="Left" FontSize="23.333" VerticalAlignment="Top" />
<TextBlock x:Name="Teaser" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" HorizontalAlignment="Left" Style="{StaticResource PhoneTextSubtleStyle}" TextWrapping="Wrap" VerticalAlignment="Top" Width="384"/>
</Grid>
有没有办法做用更少的代码隐藏和XAML多?使用绑定的一些方法可将Headline
和Teaser
的文本绑定到Story
的属性,而如果Story
为空则不会崩溃?
关于该图像?我在那里有一些逻辑;有没有办法在XAML中自动执行该操作,或者我坚持使用C#?
看起来不错,虽然我有'booleanToVisiblityConverter' 。我需要用静态资源做些什么? – 2010-11-04 18:37:40
已编辑为将实际转换器包含在静态资源中。通常你会声明这个更高级别,比如Window或App – 2010-11-04 22:09:20
好的。我收到一个无法找到的错误。 Windows Phone 7不支持吗? – 2010-11-05 00:36:07