0
我的XAML工作的每一個包含屬性列表的產品清單。當我放入靜態文本時,我有XAML的功能,但是當我嘗試使用對象屬性時,什麼都不顯示。嵌套的ListView不具有約束力正確
這是我的XAML:
<ListView ItemsSource="{Binding Products}">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition />
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Name}" FontSize="32" Margin="5" />
<GridView Grid.Column="1" ItemsSource="{Binding Attributes}">
<GridView.ItemContainerStyle>
<Style TargetType="GridViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="HorizontalAlignment" Value="Stretch"/>
</Style>
</GridView.ItemContainerStyle>
<GridView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Key}" Foreground="White" Height="Auto"/>
<TextBlock Text="{Binding Value}" Foreground="White" Height="Auto"/>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
<Grid Grid.Column="2">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock Text="Here is some selling point about product 1." FontSize="14" Margin="5" />
<StackPanel Grid.Row="1" Orientation="Horizontal">
<TextBlock Margin="5" FontSize="14" Text="1/4 oz: $150" />
<TextBlock Margin="5" FontSize="14" Text="1/2 oz: $250" />
<TextBlock Margin="5" FontSize="14" Text="1 oz: $450" />
</StackPanel>
</Grid>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
<Style TargetType="ListView">
<Setter Property="HorizontalAlignment" Value="Stretch"/>
</Style>
</ListView>
這裏是我的對象定義:
public class Product
{
public string Name { get; set; }
public string SellingPoint { get; set; }
public List<KeyValuePair<string, string>> Attributes { get; set; }
public Scale Scale { get; set; }
public UnitOfMeasure UoM { get; set; }
}
我原本只是試圖用字典的屬性,但發現沒有XAML綁定爲字典。另一篇文章建議我使用List>來代替。我知道我綁定的屬性很好,因爲,當我使用靜態文本,屬性的正確數量顯示爲模擬對象,我創建(2個KeyValuePairs每個產品)。
感謝丹尼爾,我試圖避免創建我自己的一個KeyValuePair的版本,但我可能將走這條路,因爲我似乎無法得到內部版本工作。 – Mike 2014-09-06 23:19:41
我一直這樣做,否則當你想綁定例如字典或KeyValuePair的列表時,它會導致很多問題。 – 2014-09-07 06:47:06