C# 如何更改列表框';s文本框的长度取决于到达该文本框的对象?

C# 如何更改列表框';s文本框的长度取决于到达该文本框的对象?,c#,xaml,listbox,uwp,observablecollection,C#,Xaml,Listbox,Uwp,Observablecollection,我是新来的,我用绑定到列表框的ObservableCollection构建了这个小uwp应用程序,我想知道如何在列表框中更改Textbox的透明度。确切地说,我有一个ObservableCollection,它是由对象组成的,这个对象的一个属性是布尔值。“UsersWithIndications.CheckedInOrOut”=布尔值。我想这样做,如果这个布尔值为真,这个用户的文本框变成绿色,如果它为假=红色。。。你能告诉我解决这个问题的方向吗?如何访问此列表框中的每个文本框?如果需要更多的代码

我是新来的,我用绑定到列表框的ObservableCollection构建了这个小uwp应用程序,我想知道如何在列表框中更改Textbox的透明度。确切地说,我有一个ObservableCollection,它是由对象组成的,这个对象的一个属性是布尔值。“UsersWithIndications.CheckedInOrOut”=布尔值。我想这样做,如果这个布尔值为真,这个用户的文本框变成绿色,如果它为假=红色。。。你能告诉我解决这个问题的方向吗?如何访问此列表框中的每个文本框?如果需要更多的代码,请告诉我

页面的Xaml代码

已启动应用程序,列表框

方法1: 使用转换器

这是转换器的代码

public class MyConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        if ((string)value == "true")
            return new SolidColorBrush(Colors.Green);
        else
            return new SolidColorBrush(Colors.Red);
    }

    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        throw new NotImplementedException();
    }
}
下面是代码数据绑定

<Page.Resources>
    <local:MyConverter x:Key="MyConverter"/>
</Page.Resources>

<TextBlock Name="MyOutput" Text="true" Foreground="{Binding Path=Text, Converter={StaticResource MyConverter}, ElementName=MyOutput}"/>

方法2:
前景使用单独的属性
颜色

最简单的方法是为前景颜色使用单独的属性仅供参考-如果您可以在问题中以文本形式发布XAML(&任何其他代码)会更好-而不是添加屏幕截图-我们更容易阅读。此外,如果我们想在发布前测试一个想法,可以剪切并粘贴代码。要将其显示为代码段,只需缩进4个空格。在TextBlock的前台属性上使用自定义转换器。以这个为例:(使用WPF和UWP的IValueConverter接口有点不同,但intellisense可以为您填写tht)谢谢大家,我想单独的属性是最简单的方法,因为这个应用程序只是用于测试目的。我也会去看转换器的。:)