Тем не менее, у каждого игрока есть две карты, которые ему нужно держать в секрете. Каждый клиент должен показать свою карту в зависимости от того, что было роздано этому конкретному игроку. (Потому что на самом деле я привязываюсь к массиву объектов игрока ...
Клиент знает, какого игрока он представляет, верно? Не по индексу - он должен иметь прямую ссылку на объект Player для игрока, сидящего за клавиатурой. Что-то вроде MyPlayer *userPlayer;
. Это в дополнение к объекту дилера, содержащему массив всех игроков, включая этого.
После того, как вы разложите его таким образом, с клиентским контроллером, обладающим свойством, значением которого является объект Player пользователя, привязка становится простой: вы привязываете виды карт непосредственно к карте A и карте B из userPlayer
свойство клиентского контроллера. (По сути, это то, что Чак уже предложил в своем ответе, и то, что я предложил в своем комментарии к вашему ответу на этот другой вопрос.)
представьте, что все карты хранятся в одном массиве).
Зачем мне это представлять? Почему игроки не владеют своими картами отдельно?
ОК, поэтому дилер должен владеть всеми картами (то есть колодой). Он должен совместно владеть теми, которые также находятся у игрока. Игроки не имеют доступа к своим картам через дилера; каждый игрок должен непосредственно держать свои карты.
Похоже, вы сделали ту же ошибку с картами, что и с игроками: думая, что один объект может / должен узнать другой через массив по индексу. Вы не можете - конечно, нет, если вы хотите использовать эти знания с Bindings - и не должны. Один объект должен знать другой напрямую . Это не только правильное решение, это правильный способ для объектов узнать друг друга. Любая ссылка на основе индекса массива была бы более сложной без какой-либо выгоды.