これが私のコードの一部です:
List<Targets> _myList = new List<Targets>();
RepositoryItemLookUpEdit MyRepositoryItemLookUpEdit = new RepositoryItemLookUpEdit();
MyRepositoryItemLookUpEdit.DataSource = _myList;
public class Targets
{
public string Target { get; set; }
public bool ShouldDisplay { get; set; }
public Targets(string target)
{
Target = target;
ShouldDisplay = true;
}
}
私の質問:ドロップダウン リストが表示されるときに、ターゲットのみが表示される可能性はありますShouldDisplay == true
か?
_myList
はイベント ハンドラーからアクセスできるため、リスト内の項目とそのShouldDisplay
プロパティは実行時に変更されることに注意してください。例えば:
public void MyGrid_CellValueChanging(object sender, CellValueChangedEventArgs e)
{
if (/* the focused Target item appears more than 3 times in the grid*/)
{
thisTarget.ShouldDisplay = false; // so it will be visually removed from the lookUpEdit and the user cannot select the same one anymore
}
}
ところで、CellValueChanging イベント ハンドラー内の DataSource への割り当ては適切ではありません。DataSource が再割り当てされると、ユーザーが行った変更はすべて破棄されるためです。