2017-08-07 7 views
0
<ListBox ItemsSource="{Binding XyzList}" BorderThickness="0" Background="Transparent"> 
    <ListBox.ItemContainerStyle> 
     <Style TargetType="{x:Type ListBoxItem}"> 
      <Setter Property="IsSelected" Value="{Binding Path=IsSelected, Mode=TwoWay}" /> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="ListBoxItem"> 
         <ContentPresenter/> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </ListBox.ItemContainerStyle> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
       <Image Visibility="{Binding Stop}" 
         ToolTip="{Binding Stopp}" 
         HorizontalAlignment="Left" 
         Opacity="1" Width="11" Height="11" 
         Source=stop.png"/> 
       <RadioButton Content="{Binding Period}" 
          IsEnabled="{Binding Ok}" 
          IsChecked="{Binding IsSelected}" 
          Margin="20,0,0,0" HorizontalAlignment="Left"         
          Command="Views:ValjLeveransArende.PrCommand"/> 
      </Grid> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

ラジオボタンを初めて選択すると、選択されず、正しいデータが取得されますが、選択されません。リストボックスのwpfラジオボタンが初めてチェックされない

もう一度試すと、選択されます。

詳細情報:

public class XyzList: WorkViewModelBase 
{ 
    private bool _isSelected; 
    public bool IsSelected 
    { 
     get { return _isSelected; } 
     set 
     { 
      _isSelected = value; 
      OnPropertyChanged(nameof(IsSelected)); 
     } 
    } 
} 

そして私は、私はこの

list.Add(new XyzList() 
      {      
       IsSelected = false 
      }); 
+0

プログラム開始時の 'IsSelected'の値は?拘束力のある問題のようです... –

+0

コード内でfalseに設定されています –

+0

xamltoを変更しようとしましたか?チェックボックスIsChecked = "{バインディングIsSelected、UpdateSourceTrigger = PropertyChanged}"? – DRapp

答えて

2

ようにそれを設定し、データの残りの部分を埋めるとき、それはあなたが両方によってトリガーされるIsSelected 2で場所をバインドするようになります。同じユーザーアクション。代わりに、単一のView-to-Viewmodelバインディングのみを保持し、異なるビューコントロールを相互にリンクする必要があります。

ItemContainerStyleしてください:RadioButton

<Setter Property="IsSelected" Value="{Binding Path=IsSelected, Mode=TwoWay}" /> 

変更:

IsChecked="{Binding IsSelected,RelativeSource={RelativeSource AncestorType=ListBoxItem}}" 

別の問題:彼らは同じグループに属しているかのようにあなたのラジオボタンが動作しませんが...あなたが可能実際にその機能が必要な場合は、RadioButton.GroupNameプロパティで作業する必要があります。ただし、ListBoxを完全に頼りに選択することは可能です。

+0

私はそれを試しましたが、それでもまだ最初を選択していません=(( –

+0

@KickanG機能に干渉する可能性のあるコマンドまたはプロパティ設定コードに何かがありますか? – grek40

+0

投稿にいくつかの情報を追加しました –

関連する問題