谢谢,
标记
更新:这对我来说仍然是一个问题.我的SelectedItem属性已经实现了更改通知,但是数据网格没有显示选择了哪一行 – 即它没有被突出显示.
解决方法 我猜你确实已经验证了SelectedItem已经改变了(你可以暂时将Binding Mode设置为TwoWay以查看它是否相反,通过单击你应该看到突出显示的行和SelectedItem的set-method执行).如果是,请验证您是否与PropertyChanged方法调用上的属性名称完全匹配.由于您在此处不是类型安全的,因此可能会出现拼写错误.如果不是,请检查您的数据绑定属性是否设置正确.另一个想法是,您可能已经更改了DataGrID的样式或模板,现在您缺少一些Visual状态.可以使用样式模板设置DataGrIDRow的样式.您有三个选定状态,称为UnfocusedSelected(可能是右侧),normalSelected和MouSEOverSelected.您可以尝试使用此模板创建自己的Visual State:
<Style targettype="local:DataGrIDRow"><Setter Property="IsTabStop" Value="False" /><Setter Property="Template"> <Setter.Value> <ControlTemplate targettype="local:DataGrIDRow"> <localprimitives:DataGrIDFroZenGrID name="Root"> <vsm:visualstatemanager.VisualStateGroups> <vsm:VisualStateGroup x:name="CommonStates"> <vsm:VisualState x:name="normal"/> <vsm:VisualState x:name="normalAlternatingRow"> <Storyboard> <DoubleAnimation Storyboard.Targetname="BackgroundRectangle" Storyboard.TargetProperty="Opacity" Duration="0" To="0"/> </Storyboard> </vsm:VisualState> <vsm:VisualState x:name="MouSEOver"> <Storyboard> <DoubleAnimation Storyboard.Targetname="BackgroundRectangle" Storyboard.TargetProperty="Opacity" Duration="0" To=".5"/> </Storyboard> </vsm:VisualState> <vsm:VisualState x:name="normalSelected"> <Storyboard> <DoubleAnimation Storyboard.Targetname="BackgroundRectangle" Storyboard.TargetProperty="Opacity" Duration="0" To="1"/> </Storyboard> </vsm:VisualState> <vsm:VisualState x:name="MouSEOverSelected"> <Storyboard> <DoubleAnimation Storyboard.Targetname="BackgroundRectangle" Storyboard.TargetProperty="Opacity" Duration="0" To="1"/> </Storyboard> </vsm:VisualState> <vsm:VisualState x:name="UnfocusedSelected"> <Storyboard> <DoubleAnimation Storyboard.Targetname="BackgroundRectangle" Storyboard.TargetProperty="Opacity" Duration="0" To="1"/> <colorAnimation Duration="0" Storyboard.Targetname="BackgroundRectangle" Storyboard.TargetProperty="(Fill).color" To="#FFE1E7EC"/> </Storyboard> </vsm:VisualState> </vsm:VisualStateGroup> <vsm:VisualStateGroup x:name="ValIDationStates"> <vsm:VisualState x:name="ValID"/> <vsm:VisualState x:name="InvalID"> <Storyboard> <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.Targetname="BackgroundRectangle" Storyboard.TargetProperty="Visibility"> <discreteObjectKeyFrame KeyTime="0" Value="Collapsed"/> </ObjectAnimationUsingKeyFrames> <DoubleAnimation Storyboard.Targetname="InvalIDVisualElement" Storyboard.TargetProperty="Opacity" Duration="0" To="1"/> </Storyboard> </vsm:VisualState> </vsm:VisualStateGroup> </vsm:visualstatemanager.VisualStateGroups> <GrID.RowDeFinitions> <RowDeFinition/> <RowDeFinition Height="auto"/> <RowDeFinition Height="auto"/> </GrID.RowDeFinitions> <GrID.ColumnDeFinitions> <ColumnDeFinition WIDth="auto" /> <ColumnDeFinition/> </GrID.ColumnDeFinitions> <GrID.Resources> <Storyboard x:Key="DetailsVisibleTransition"> <DoubleAnimation Storyboard.Targetname="DetailsPresenter" Storyboard.TargetProperty="ContentHeight" Duration="00:00:0.1" /> </Storyboard> </GrID.Resources> <Rectangle x:name="BackgroundRectangle" GrID.rowspan="2" GrID.ColumnSpan="2" Opacity="0" Fill="#FFBADDE9"/> <Rectangle x:name="InvalIDVisualElement" GrID.rowspan="2" GrID.ColumnSpan="2" Opacity="0" Fill="#FFF7D8DB"/> <localprimitives:DataGrIDRowheader GrID.rowspan="3" name="Rowheader" localprimitives:DataGrIDFroZenGrID.IsFroZen="True" /> <localprimitives:DataGrIDCellsPresenter GrID.Column="1" name="CellsPresenter" localprimitives:DataGrIDFroZenGrID.IsFroZen="True" /> <localprimitives:DataGrIDDetailsPresenter GrID.Row="1" GrID.Column="1" name="DetailsPresenter" /> <Rectangle GrID.Row="2" GrID.Column="1" name="BottomGrIDline" HorizontalAlignment="Stretch" Height="1" /> </localprimitives:DataGrIDFroZenGrID> </ControlTemplate> </Setter.Value></Setter></Style>
这是一个关于自定义DataGrID样式的好的MSDN Article的复制粘贴.例如,您可以修改模板的UnfocusedSelected部分,看看是否看到任何更改,例如,在其周围添加红色边框等.
也许这值得一试.我希望你知道如何应用自己的风格.如果没有,这是另一个MSDN Resource.
我知道,这些只是提示,但最后可能会有所帮助.
总结以上是内存溢出为你收集整理的silverlight-3.0 – Silverlight DataGrid从代码中更新SelectedItem全部内容,希望文章能够帮你解决silverlight-3.0 – Silverlight DataGrid从代码中更新SelectedItem所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)