0
在重复标记之前,请仔细阅读我的问题。在DataTemplate中访问填充矩形的颜色
我正在制作xaml c#VS2013中的Windows Phone应用程序。 我正在使用longlistselector中的Web API(因为我想让用户可以像列表框中一样选择项目)。
XAML
<phone:LongListSelector Margin="24,0" x:Name="Longlist" d:IsHidden="True" ItemTemplate="{StaticResource GoalTemplate}"/>
<phone:PhoneApplicationPage.Resources>
<DataTemplate x:Key="GoalTemplate">
<Grid Width="432" Height="90" Margin="0,33,0,0">
<StackPanel Orientation="Horizontal">
<Rectangle HorizontalAlignment="Left" Height="90" StrokeThickness="0" VerticalAlignment="Top" Width="4">
<Rectangle.Fill>
<SolidColorBrush Color="{Binding rcolor, Mode=OneWay}"/>
</Rectangle.Fill>
</Rectangle>
<StackPanel HorizontalAlignment="Left" Height="86" Margin="27,4,0,0" VerticalAlignment="Top" Width="400">
<TextBlock Text="{Binding Name}" HorizontalAlignment="Left" Height="37" TextWrapping="Wrap" VerticalAlignment="Top" Width="405" Foreground="{StaticResource FlatUI-Blue1}" FontSize="26.667"/>
<TextBlock Text="{Binding Description}" TextWrapping="Wrap" FontSize="14.667" Height="49" Foreground="{StaticResource FlatUI-Grey}"/>
</StackPanel>
</StackPanel>
</Grid>
</DataTemplate>
</phone:PhoneApplicationPage.Resources>
XAML.CS代码
void Maths_Loaded(object sender, RoutedEventArgs e)
{
string uri = "http://localhost:1361/api/chore";
WebClient client = new WebClient();
client.Headers["Accept"] = "application/json";
client.DownloadStringAsync(new Uri(uri));
client.DownloadStringCompleted += (s1, e1) =>
{
//var data = JsonConvert.DeserializeObject<HomeWork[]>(e1.Result.ToString());
//MessageBox.Show(data.ToString());
var hw = JsonConvert.DeserializeObject<HomeWork[]>(e1.Result.ToString());
foreach (HomeWork c in hw)
{
if (c.Chore_Type == "Maths")
{
result.Add(c);
// result is a List<HomeWork> to store only maths
// homework in longlistselector
}
}
Longlist.ItemsSource = result;
};
}
现在我的问题是 我有一个长方形指示作业的优先级。 在数据库中,我拥有包含“正常”,“中”和“高”优先级的优先级列。 我想让Rectangle的填充颜色分别为蓝色,橙色和绿色。 但是我无法改变矩形的颜色(从Web API消耗)
请指导我如何访问数据模板中的矩形应用if-else子句或其他改变基于优先级的颜色。
谢谢 请指导我。 如果你DONOT明白,请告知这样我就可以解释的。
谢谢。这种方法帮助我解决了这个问题。 – 2015-04-03 05:47:29