【发布时间】:2013-10-15 17:57:16
【问题描述】:
我在这里有一个简单的列表框:link to image 我在其中绑定了数据。现在,当我点击一个项目(一行)时,列表框项目/行被选中/紫色,但实际上这个项目不是真正选择的,只有行改变颜色,但是当我点击图像或文本时,我点击的行没有被选中/小提琴,但代码中的项目被选中。我不确定你是否明白我在说什么。简而言之,如果我单击空白行,则行是可视选择的,但列表框项之类的发件人不会获取数据,如果我单击文本或图像,则发件人会获取数据,但未选择可视化。当我点击任意行被选中/紫色和项目发送者获取数据时,我该怎么做?
我的第二个问题是为什么我的矩形使用像线有最大宽度像文本我想拉伸这个矩形在列表框的全宽这可能吗?
XAML:
<ListBox x:Name="lbMessagesUsersList" Foreground="Black" ItemsSource="{Binding MyDatasMessagesUserList }">
<ListBox.ItemTemplate>
<DataTemplate>
<ListBoxItem Tapped="userTapped" Tag="{Binding}" >
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="{Binding MessengeHisPhoto}" HorizontalAlignment="Left" Width="40" Height="40" Margin="5,-18,0,-18" Stretch="Fill" ></Image>
<TextBlock x:Name="tbMessengerName" Text="{Binding MessengeFullName}" HorizontalAlignment="Left"
Grid.Column="1" Margin="25,0,0,0"/>
</Grid>
<Rectangle Height="1" Margin="0,0,0,-38" HorizontalAlignment="Stretch">
<Rectangle.Fill>
<SolidColorBrush Color="Black"/>
</Rectangle.Fill>
</Rectangle>
</StackPanel>
</ListBoxItem>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
CS:
private void userTapped(object sender, TappedRoutedEventArgs e)
{
var button = sender as ListBoxItem;
if (button != null)
{
var subject = MyDatasMessagesUserList.FirstOrDefault(sub => sub == button.Tag);
if (subject != null)
{
IdOfChoosenUser = subject.MessengeIdUser;
}
}...
我也尝试删除 ListbOxItem 并将绑定标签设置为 stackPanel,但这也不起作用。{
【问题讨论】:
标签: c# xaml windows-8 listbox windows-store-apps