UWP изменить цвет переднего плана TextBox с Binding - PullRequest
0 голосов
/ 14 апреля 2019

У меня есть этот код:

   <TextBox TextWrapping="Wrap" Text="{Binding Date}"
                                       />

Я хочу изменить этот цвет TextBox с помощью Binding.

Я попробовал следующее:

  public class ArticleItem
    {
        public string Title { get; set; }
        public string Date { get; set; }
        public string Url { get; set; }
        public SolidColorBrush ColorBrush;
    }

и попытался связать ColorBrush, но цвет переднего плана не изменится.

                    list.Items.Add(new ArticleItem() { Title = item.Title.Text, Date = item.PublishedDate.ToString(), ColorBrush = new SolidColorBrush(Colors.Red), Url = item.Links[0].Uri.ToString()});

в XML:

<TextBox TextWrapping="Wrap" Text="{Binding Date}" Foreground="{Binding ColorBrush}"
                                       />

1 Ответ

0 голосов
/ 15 апреля 2019

Привязка привязана к свойству, а не к полю.Вы должны определить свой ColorBrush как свойство.

public class ArticleItem
{
    public string Title { get; set; }
    public string Date { get; set; }
    public string Url { get; set; }
    public SolidColorBrush ColorBrush { get; set; }
}
public sealed partial class MainPage : Page
{
    public ObservableCollection<ArticleItem> list { get; set; }

    public MainPage()
    {
        this.InitializeComponent();
        list = new ObservableCollection<ArticleItem>();
        list.Add(new ArticleItem() { Title = "title1", ColorBrush = new SolidColorBrush(Colors.Red), Date = DateTime.Now.ToString() });
        list.Add(new ArticleItem() { Title = "title2", ColorBrush = new SolidColorBrush(Colors.Blue), Date = DateTime.Now.ToString() });
        this.DataContext = this;
    }
}
<ListView ItemsSource="{Binding list}">
        <ListView.ItemTemplate>
            <DataTemplate>
                <TextBox Text="{Binding Date}" Foreground="{Binding ColorBrush}"></TextBox>
            </DataTemplate>
        </ListView.ItemTemplate>
</ListView>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...