Привязка к текущему текстовому тексту со значениями по умолчанию - PullRequest
1 голос
/ 21 февраля 2012

у меня есть изображение, вложенное в кнопку

   <ListBox>                    
      <ListBox.ItemsSource>
          <Binding Path="Peers"></Binding>
      </ListBox.ItemsSource>

      <ListBox.ItemTemplate>
          <DataTemplate>
               <ListBoxItem>                               
                  <Button  x:Name="btn_InviteToPlay" Click="btn_InviteToPlay_Click">                                         
                     <Button.Content>
                        <Image Source="{Binding  GameStatus,Converter={StaticResource MyGameStatusToIconConverter}}" x:Name="img_invitation"></Image>
                      </Button.Content>
                   </Button>
                </ListBoxItem>
           </DataTemplate>
       </ListBox.ItemTemplate>              
 </ListBox>

когда я нажимаю btn_InviteToPlay, я пытаюсь изменить текстовый текст изображения на экземпляр Game и привязать источник изображения к свойству GameStatus игры.

    private void btn_InviteToPlay_Click(object sender, RoutedEventArgs e)
    {                        
        Game game = new Game(){ GameStatus = GameStatus.Waiting};
        img.DataContext = game;
    }       

эта привязка не работает,

Прежде всего, DataContext для изображения изначально является DataContext его Предка, который я не хочу применять к изображению.

мой вопрос:

(1), как применить значение по умолчанию перед тем, как тексту данных изображения будет задан какой-либо контекст, игнорируя DataContext предка, поскольку изображение вложено в ItemControl Item.

(2) в целом я не смог применить привязку для текущего DataContext (привязка к Game в качестве источника и GameStatus в качестве пути), поэтому я ищу правильный способ сделать это.

Я полагаю, что для этого нужно привязать каждое изображение к экземпляру игры по умолчанию.

я попытался сделать это в разметке: в моих ресурсах:

   <local:Game x:Key="DefaultGame" />

Изображение:

   <Image  Source="{Binding Source=DefaultGame,Path=GameStatus, Converter={StaticResource MyGameStatusToIconConverter}}" x:Name="img_invitation"></Image>

это тоже не работает, любые идеи. Также я думал сделать это в коде, но не мог понять, как так как все, что я делаю, это даю содержащую панель его datacontext, и все происходит оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...