0
ユーザーがフォーム上の他の場所にデータを保存するときにリフレッシュするInfragistics 15.1 WPF XamDataGridがあります。保存する前に選択した行をプログラムで選択する方法を考えました。私の問題は、その行がグリッドの上の行の1つでない場合、ユーザーは強調表示された行にスクロールバックしなければならないということです。グリッドを選択した行にスクロールさせる方法はありますか?XamDataGridの選択した行へスクロール
XAMLコード
<inf:XamDataGrid GroupByAreaLocation="None"
SelectedDataItem="{Binding SelectedPayItem, Mode=TwoWay}"
ActiveDataItem="{Binding SelectedPayItem, Mode=OneWay}"
DataSource="{Binding SelectedProject.ContractProjectPayItems}" ScrollViewer.VerticalScrollBarVisibility="Auto"
Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="2" Margin="2.8,3.4,3,2.8">
ビューモデルコード
private void SetSelectedPayItem()
{
if (SelectedProject != null)
{
if (SelectedProject.ContractProjectPayItems.Count() > 0)
{
if (SelectedProject.SelectedPayItemLineNbr == -1)
{
SelectedPayItem = SelectedProject.ContractProjectPayItems.First();
}
else
{
if (strLineItemNbr != null)
{
SelectedPayItem = SelectedProject.ContractProjectPayItems.FirstOrDefault(CPPI => CPPI.LineItemNbr == strLineItemNbr);
}
else
{ SelectedPayItem = SelectedProject.ContractProjectPayItems[SelectedProject.SelectedPayItemLineNbr]; }
}
}
else
{
SelectedPayItem = null;
}
}
}
string strLineItemNbr;
private ContractProjectPayItemModel _selectedPayItem;
public ContractProjectPayItemModel SelectedPayItem
{
get { return _selectedPayItem; }
set
{
_selectedPayItem = value;
if (_selectedPayItem != null)
{
SelectedProject.SelectedPayItemLineNbr = SelectedProject.ContractProjectPayItems.IndexOf(_selectedPayItem);
if (_selectedPayItem.ItemInstallations == null)
{
var oItemInstallation = new clsItemInstallation();
_selectedPayItem.ItemInstallations = oItemInstallation.GetItemInstallsByProjectPayItem(_selectedPayItem.ProjectGuid, _selectedPayItem.PayItemGuid);
foreach (var itemInstallation in _selectedPayItem.ItemInstallations)
{
itemInstallation.PropertyChanged += ItemInstallationsPropertyChanged;
itemInstallation.AcceptChanges();
}
_selectedPayItem.AcceptChanges();
foreach (var ii in SelectedProject.ContractProjectPayItems)
{
if (ii.ItemInstallations != null)
{
foreach (var i2 in ii.ItemInstallations)
{
i2.AcceptChanges();
}
}
}
RaisePropertyChanged("TotalInstallQty");
}
_itemInstallViewModel.SelectedProjectLineItem = SelectedPayItem;
strLineItemNbr = SelectedPayItem.LineItemNbr;
}
RaisePropertyChanged("SelectedPayItem");
RaisePropertyChanged("IsBitumen");
//----------------------------------
// Populate the User Control tabs.
//----------------------------------
PopulateUserControls();
SetSelectedItemInstallation();
RaisePropertyChanged("TotalInstallQty");
}
}