日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在ListBox中添加ToggleButton(有IsChecked属性)

發布時間:2025/3/21 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在ListBox中添加ToggleButton(有IsChecked属性) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Xaml文件:

<ListBox?Name="lbTasteSet" ScrollViewer.HorizontalScrollBarVisibility="Disabled"
  ItemsSource="{Binding TasteSet}" Style="{StaticResource MultipleToggleButtonList}"
  SelectionMode="Multiple">
  <i:Interaction.Triggers>
    <i:EventTrigger EventName="SelectionChanged">
    <i:InvokeCommandAction Command="{Binding GetTasteCommand}"
               CommandParameter="{Binding ElementName=lbTasteSet}"></i:InvokeCommandAction>
    </i:EventTrigger>
  </i:Interaction.Triggers>
  <ListBox.ItemsPanel>
    <ItemsPanelTemplate>
      <WrapPanel IsItemsHost="True" ItemHeight="30" ItemWidth="60"></WrapPanel>
    </ItemsPanelTemplate>
  </ListBox.ItemsPanel>
</ListBox>

Xaml中用到的Style:因為ToggleButton相當于ListBoxItem的Content,這時要使togglebutton的IsSelected屬性與ListBox的SelectedItem的IsSelect屬性關聯則需要在Style中設置下劃線所示Setter

<Style TargetType="ListBox" x:Key="MultipleToggleButtonList">
  <Setter Property="ItemContainerStyle">
  <Setter.Value>
    <Style TargetType="ListBoxItem">
    <Setter Property="IsSelected" Value="{Binding Path=IsSelected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"></Setter>

    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate>
          <Border Background="Transparent" Margin="{TemplateBinding Padding}">
          <telerik:RadToggleButton Content="{Binding Path=Taste.Name}"
            IsChecked="{Binding Path=IsSelected,Mode=TwoWay,RelativeSource={RelativeSource TemplatedParent}}">                     ? </telerik:RadToggleButton>
          </Border>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
    </Style>
  </Setter.Value>
  </Setter>
</Style>

?

ViewModel:用到了(lanmuda)表達式

/// <summary>
/// 獲取選擇的口味
/// </summary>
public void ExecuteGetTaste(ListBox lb)
{
  //TasteItemViewModel model = lb.SelectedItem as TasteItemViewModel;
  List<Taste> selectedTastes= this.TasteSet.Where(i => i.IsSelected == true).Select(i => i.Taste).ToList();
  selectedTastes.Distinct();
  string strTaste = "";
  foreach (var item in selectedTastes)
  {
    strTaste += "["+item.Name+"]";
  }
  this.DishTaste = strTaste;
}

轉載于:https://www.cnblogs.com/gnsds/p/3671955.html

總結

以上是生活随笔為你收集整理的在ListBox中添加ToggleButton(有IsChecked属性)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。