2017-01-19 18 views
0

私はuitableviewと読み込みデータのいくつかの例を見てきましたが、私は必要な解決策を見つけることができません。Xamarin defaultsettingsに基づいてプログラムでuitableviewセルを選択する方法

基本的に私は私が正常に動作テーブルビューにデータをバインドするWebサービスからデータをロードしたら、私はのUIViewController

public class Lookup 
{ 

    public string ID { get; set; } 
    public string Name { get; set; } 
} 

public List<Lookup> myList = new List<Lookup>(); 

にデータをロードするデータソース(はmyList)を持っています。 ...

myTableView.Source = new tableSource(MyList, this); 

これは、ソースからのサンプルです....

class tableSource : UITableViewSource 
{ 
    List<HospitalLookup> TableItems; 
    string CellIdentifier = "TableCell"; 
    UIVCPreferences Parent; 

    public tableSitesSource(List<Lookup> items, UIVCPreferences parent) 
    { 
     TableItems = items; 
     Parent = parent; 
    } 
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath) 
    { 
     UITableViewCell cell = tableView.DequeueReusableCell(CellIdentifier); 
     Lookup item = TableItems[indexPath.Row];    
     if (cell == null) 
     { cell = new UITableViewCell(UITableViewCellStyle.Default, CellIdentifier); } 
     cell.TextLabel.Text = item.Name;... 

私はトンですユーザが持っている設定値に基づいてテーブル値を選択する方法を見つけるために、UserLookupValue = 5と言うことができます。

私はscrolltorowを見ましたが、データソースID名。私は任意の助けをいただければ幸い、私はこれを行うための別の方法が必要な場合があります推測している

 myTableView.SelectRow(List.Find(UserLookupValue),false,UITableViewScrollPosition.None);  

:私のようなものを試してみました。

答えて

1

最初に:あなたのコードは読みにくいです。 C#の一般的な命名規則に従うことでそれを改善する必要があります。

ListmyTableView.SelectRow(...)となりますか?タイプがList<LookUp>の場合は、myListになります。またSelectRowはNSIndexPathを最初のパラメータとして必要としますが、List.FindはLookupインスタンスを返します。あなたのため、この作業を行い

var userLookupValueIndex = myList.IndexOf(userLookupValue);  
myTableView.SelectRow(NSIndexPath.FromRowSection(userLookupIndex, 0), false, UITableViewScrollPosition.None); 

myTableView.SelectRow(List.Find(UserLookupValue),false,UITableViewScrollPosition.None); 

を置き換えることにより、以下のことを試してみてください?

+0

こんにちは、ありがとうございます。名前付け規則を残して申し訳ありません、私は例を与えるために私のコードのいくつかをハックする必要がありました。私はこれにもっと注意を払うつもりです。 –

+0

ようこそ。 –

関連する問題