Пожалуйста, пройдите мою проблему, прежде чем отмечать ее дубликат.Доступ к заполнению Цвет прямоугольника внутри DataTemplate
Я делаю приложение Windows Phone в xaml C# VS2013. Я использую веб-API в longlistselector (потому что я хочу разрешить пользователю выбирать элемент, как в списке).
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 был синим, оранжевым и зеленым соответственно. Но я не могу изменить цвет прямоугольника относительно его приоритета (который используется из веб-API.
Просьба указать мне, как получить доступ к прямоугольнику в шаблоне данных, применить if-else Предложение или что-то еще изменение цвета в зависимости от приоритета.
Спасибо, Пожалуйста, Ведите меня. Если вы выигрыш понять, пожалуйста, сообщите так я могу объяснить.
спасибо. Этот подход помог мне решить проблему. –