我在这里有简单的列表框:链接到我绑定数据的图像。现在,当我点击一个项目(一行)时,列表框项目/行被选中/紫色,但实际上这个项目不是真正选择的,只有行改变颜色,但是当我点击图像或文本时,我点击的行没有被选中/小提琴,但代码中的项目被选中。我不确定你是否明白我在说什么。简而言之,如果我单击空白行,则行是可视选择的,但列表框项之类的发件人不会获取数据,如果我单击文本或图像,则发件人会获取数据,但未选择可视化。当我单击任意行被选中/紫色并且项目发送者获取数据时,我该怎么做?
我的第二个问题是为什么我使用的矩形像线条一样具有最大宽度,我想在列表框的全宽处拉伸这个矩形,这可能吗?
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 但这也不起作用。{