C# 通过在Windows Phone 8应用程序中以编程方式更改ListBox的DataTemplate设计?

C# 通过在Windows Phone 8应用程序中以编程方式更改ListBox的DataTemplate设计?,c#,wpf,xaml,listbox,C#,Wpf,Xaml,Listbox,我正在将邮件列表绑定到已读和未读的WPF列表框,我可以将其绑定,但我希望未读邮件的字体粗体,而已读邮件的字体粗体 我的代码如下所示 <ListBox ItemsSource="{Binding Table}" x:Name="lbMessageList" > <ListBox.ItemTemplate> <DataTemplate > <StackPanel Margin="10,0,

我正在将邮件列表绑定到已读和未读的WPF列表框,我可以将其绑定,但我希望未读邮件的字体粗体,而已读邮件的字体粗体

我的代码如下所示

<ListBox ItemsSource="{Binding Table}" x:Name="lbMessageList" >
      <ListBox.ItemTemplate>
            <DataTemplate >
                <StackPanel  Margin="10,0,0,0" Width="460" >
                    <TextBlock TextWrapping="Wrap"Text="{Binding MessageSubject}"> 
                    </TextBlock>
                </StackPanel>
            </DataTemplate>
      </ListBox.ItemTemplate> 
</ListBox>

我正在使用

List<Table> myData = new List<Table>();
myData.Add(new Table() {MessageSubject = blog.MessageSubject });
List myData=new List();
添加(新表(){MessageSubject=blog.MessageSubject});

类中需要一个
MessageRead
布尔标志。将
TextBlock
元素上的
fontwweight
绑定到
MessageRead
,并使用
Converter
false
转换为
Bold
,将
true
转换为
Normal
/
Light
尝试此数据模板:

<DataTemplate >
    <StackPanel  Margin="10,0,0,0" Width="460" >
        <TextBlock Name="txtMessageHeader" TextWrapping="Wrap" Text="{Binding MessageSubject}">
        </TextBlock>
    </StackPanel>
    <DataTemplate.Triggers>
        <DataTrigger Binding="{Binding ReadStatusOfMessage}" Value="False">
            <Setter TargetName="txtMessageHeader" Property="FontWeight" Value="Bold"/>
        </DataTrigger>
    </DataTemplate.Triggers>
</DataTemplate>


@Toadflaks我在代码中没有得到Id,所以我如何确定文本块这次是粗体的,这次是浅色的,,,这很混乱。您的项目应该有属性,例如
bool IsMessageRead
。然后,您可以使用此属性更改单个
数据模板中的内容(您不需要更多)。最简单的方法是创建转换器,它在
false
上返回字体,在
true
上返回粗体,并绑定以更改标记,Windows Phone 8与wpf非常不同。它会抛出一个错误----错误2在类型“DataTemplate”中找不到可附加属性“Triggers”。是的,这是可能的,无法接受代码,错误是->成员触发器无法识别或无法访问,我在代码中使用了上述代码