C# 将ListBox内的控件绑定到ListBox源以外的源

C# 将ListBox内的控件绑定到ListBox源以外的源,c#,windows-phone-7,binding,C#,Windows Phone 7,Binding,我有一个列表框绑定到一个源,该源向其中控件的文本属性提供数据。现在我想将我的文本框的前台属性绑定到不同的源,而不是主列表框绑定到的源 我的列表框绑定到ObservableCollection,我希望我的textblock前景属性绑定到位于ViewModel中的textColor public SolidColorBrush textColor { get { return new SolidColorBrush(Colors.Red); } } 两者都在ViewModel类中。 我尝试

我有一个
列表框
绑定到一个源,该源向其中控件的文本属性提供数据。现在我想将我的文本框的
前台
属性绑定到不同的源,而不是主列表框绑定到的源

我的列表框绑定到ObservableCollection,我希望我的textblock前景属性绑定到位于ViewModel中的textColor

public SolidColorBrush textColor
{
    get { return new SolidColorBrush(Colors.Red); }
}
两者都在
ViewModel
类中。 我尝试使用
前台=“{Binding textColor}”
,但似乎XAML根本看不到它,我应该在页面中做些什么以便它可以看到它,还是因为父(
ListBox
)使用了不同的源代码

编辑:

更多详情:

我有一个
DataContext.cs
类,我在其中定义了我的表。 我有一个
ViewModel.cs
类,里面有这些

public class CViewModel : INotifyPropertyChanged
{
    private CDataContext myDB;

    public CViewModel(string DBConnectionString)
    {
        myDB = new CDataContext(DBConnectionString);
    }

    private ObservableCollection<Groups> _allGroups;
    public ObservableCollection<Groups> AllGroups
    {
        get { return _allGroups; }
        set
        {
            _allGroups = value;
            NotifyPropertyChanged("AllGroups");
        }
    }

    public string textColor
    {
        get { return "Tomato"; }
    }
}
我还将我的
主页的
DataContext
设置为
ViewModel
中的代码隐藏:

this.DataContext = App.ViewModel;

您所要做的就是声明一个静态类(例如,具有每个实例访问权限的单例),并显式地将属性绑定设置为在该类中查找,而不是在父绑定模型中查找


底线:只需通过
StaticResource
显式设置
源代码
textColor
属性是
CViewModel
的一部分,而不是作为ItemTemplate内数据上下文的
对象

在ItemTemplate中,您可以通过以下元素绑定访问父ViewModel:

<TextBlock Name="ccl" Margin="0,0,0,-5"
           Foreground="{Binding ElementName=ContentPanel, Path=DataContext.textColor}"
           Text="{Binding Count}" FontSize="26"
           VerticalAlignment="Bottom" HorizontalAlignment="Left" />


这应该可以正常工作。我使用了一个默认的数据绑定应用程序,将您的属性添加到
ItemViewModel
,并在MainPage.xaml的第36行末尾添加了前台绑定,当在模拟器中运行时,它正确设置了文本块的颜色。请提供一个完整的例子,重新创建您的问题,我们将帮助确定您的问题所在。谢谢我编辑了这篇文章!您现在已经定义了两次
textColor
。它是字符串还是SolidColorBrush?是的,我把它改成了字符串,因为当我在XAML中读取它时,我认为它需要字符串!如果要通过绑定进行设置,则需要正确设置类型。XAML解析器将在执行初始解析时尝试转换字符串,但在绑定属性时,您不会获得此自动转换。您可以告诉我如何进行转换,因为我对Windows Phone和XAML术语不太熟悉!
<TextBlock Name="ccl" Margin="0,0,0,-5"
           Foreground="{Binding ElementName=ContentPanel, Path=DataContext.textColor}"
           Text="{Binding Count}" FontSize="26"
           VerticalAlignment="Bottom" HorizontalAlignment="Left" />