怎么才能在UWP里排成一排呢?我在WPF中找到了解决方案,但是UWP似乎没有这些选择。
我不是在问关于SelectedItem的事。
例如,我有一个数据存储显示一个音乐库。我想突出显示正在播放音乐的一排。我如何在c#或使用xaml中做到这一点?
我试过使用样式和转换器,但我不知道该绑定什么。
DataGrid的项源是public static List<Music>对象。
<controls:DataGrid
x:Name="MusicLibraryDataGrid"
Grid.Row="1"
Margin="10"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
AlternatingRowBackground="WhiteSmoke"
AlternatingRowForeground="Gray"
AreRowDetailsFrozen="False"
AreRowGroupHeadersFrozen="True"
AutoGenerateColumns="False"
CanUserReorderColumns="True"
CanUserResizeColumns="True"
CanUserSortColumns="True"
ColumnHeaderHeight="32"
DoubleTapped="MusicLibraryDataGrid_DoubleTapped"
Foreground="Black"
FrozenColumnCount="0"
GridLinesVisibility="None"
HeadersVisibility="Column"
HorizontalScrollBarVisibility="Visible"
IsDoubleTapEnabled="True"
IsReadOnly="False"
ItemsSource="{Binding AllSongs}"
MinColumnWidth="100"
SelectionMode="Extended"
Sorting="MusicLibraryDataGrid_Sorting"
VerticalScrollBarVisibility="Visible">
<controls:DataGrid.Columns>
// Some code
</controls:DataGrid.Columns>
<controls:DataGrid.RowStyle>
<Style TargetType="controls:DataGridRow">
<Setter Property="Foreground" Value="{Binding Music, Converter={StaticResource DataGridRowColorConverter}}" />
</Style>
</controls:DataGrid.RowStyle>
</controls:DataGrid>发布于 2019-08-25 03:17:08
由于@Faywang的答案here,我已经意识到,虽然没有直接的方法在DataGrid中获得一行,但解决办法可能是给ViewModel一个属性,并使用一个转换器来实现您想要的结果。
这个问题提供了一个ListView的例子,但想法是一样的。
发布于 2020-02-18 11:03:18
为已故的人感到抱歉,但也许它能帮助未来的人。
我也有这个问题。我想高亮显示一些数据被更改或出现错误的行。
我发现,使用DataGrid.LoadingRow事件,您可以在行实例化之前访问它,并更改一些属性:
dataGrid.LoadingRow += DataGrid_LoadingRow;
private void DataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
if ((e.Row.DataContext as string).Length == 0)
e.Row.Background = new SolidColorBrush(Colors.Blue);
}如果行已经被实例化,并且无法重新加载它们,那么这个解决方案就没有那么有用。我希望这能帮到别人
https://stackoverflow.com/questions/57505406
复制相似问题