在Windows Phone 8 App中以编程方式更改ListBox的DataTemplate设计?

时间:2014-12-19 09:25:48

标签: c# wpf xaml listbox

我正在将消息列表绑定到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 });

2 个答案:

答案 0 :(得分:0)

您的MessageRead课程中需要Table布尔标志。将FontWeight元素上的TextBlock绑定到MessageRead并使用Converterfalse转换为Boldtrue转换为{{ 1}} / Normal

答案 1 :(得分:0)

试试这个DataTemplate:

<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>