簡體   English   中英

在Windows 8 App中以編程方式更新XAML數據模板

[英]Programatically Update XAML Data Template in Windows 8 App

我有一個像這樣的數據模板:

    <DataTemplate x:Key="itemTmpl">
        <Grid Margin="6">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>

                <Border Height="90" Width="90" Background="#eee" />

            <StackPanel Grid.Column="1" VerticalAlignment="Top" Margin="10,0,0,0">
                <TextBlock Text="{Binding Id}" Style="{StaticResource TitleTextBlockStyle}" TextWrapping="NoWrap"/>
            </StackPanel>
        </Grid>
    </DataTemplate>

我在后面的代碼中設置一個列表視圖項源,如下所示:

lv.ItemTemplate = (DataTemplate)this.Resources["itemTmpl"];

如何在模板呈現到UI之前以編程方式更改邊框背景?

您可以做一些事情:

  • 解析可視樹(使用VisualTreeHelper或擴展方法,例如WinRTXamlToolkit ),找到邊框(可能通過x:Name )並設置背景。
  • 將背景綁定到項目中的值
  • 將背景綁定到VM中的值

對於這兩個綁定中的任何一個,都可以使用Converter將非畫筆值轉換為適當的畫筆值(例如,如果您希望它根據是否被選中,是否為bool來更改顏色)。

對於第二個綁定,請確保將Source設置為VM,因為默認情況下,DataContext將是Item。 另外,請確保您的Item繼承自INotifyPropertyChanged,以便根據數據的更改正確地更新綁定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM