WPF 绑定

<TextBlock Text="{Binding UserInfo.UserName,StringFormat='中国人:\{0\}'}" ></TextBlock>

string.format

异步更新数据

  <ListBox ItemsSource="{Binding List, IsAsync=True, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type local:MainWindow}}}"  
           Height="179" HorizontalAlignment="Left" Margin="76,31,0,0" Name="listBox1" VerticalAlignment="Top" Width="135" />

各种样式的绑定:

1、string.format

<StackPanel Margin="10,20,0,50">
                <TextBlock Text="下拉框" FontWeight="Bold" FontSize="12" Margin="0,5,0,5" ></TextBlock>
                <DockPanel x:Name="Combbox" >
                    <StackPanel DockPanel.Dock="Left" Width="240">
                        <ComboBox Width="200" HorizontalAlignment="Left" ItemsSource="{Binding CombboxList}" SelectedItem="{Binding CombboxItem}" DisplayMemberPath="Text" SelectedValuePath="Key" ></ComboBox>
                    </StackPanel>

                    <StackPanel DockPanel.Dock="Right" Width="240" Orientation="Horizontal" DataContext="{Binding CombboxItem}" >
                        <TextBlock Text="{Binding Key,StringFormat='结果:\{0\}'}" Margin="0,0,15,0" ></TextBlock>
                        <TextBlock Text="{Binding Text}"></TextBlock>
                    </StackPanel>

                    </DockPanel>
            </StackPanel>

 

2、CombboxItem 是一个全局的属性,作用在当前页面的数据上下文中,结果显示的内容指向下拉框中的选中值,达到共用一个数据的目的。 

这边有四个地方需要注意的:ItemsSource:数据源;SelectedItem:选中的项;DisplayMemberPath:绑定时显示的所属值;SelectedValuePath :绑定时候 key 的所属值。 

 

3、绑定相同的数据源 

IsSingleRadioCheck
<StackPanel Margin="10,0,0,50">
                <TextBlock Text="单选框" FontWeight="Bold" FontSize="12" Margin="0,5,0,5" ></TextBlock>
                <DockPanel x:Name="RadioButton" >
                    <StackPanel DockPanel.Dock="Left" Width="240">
                        <RadioButton Content="{Binding SingleRadio}" IsChecked="{Binding IsSingleRadioCheck}" HorizontalAlignment="Right" Width="240" >
                        </RadioButton>
                    </StackPanel>
                    <StackPanel DockPanel.Dock="Right" Width="240" Orientation="Horizontal">
                        <TextBlock Text="{Binding IsSingleRadioCheck,StringFormat='结果:\{0\}'}" ></TextBlock>
                    </StackPanel>
                </DockPanel>
            </StackPanel>

 

4、找到顶级的 DataContent 然后 .命令

RadioButton 的 GroupName 一样时代表这些 RadioButton 是一组。

<StackPanel Margin="10,0,0,50">
                <TextBlock Text="组合单选框" FontWeight="Bold" FontSize="12" Margin="0,5,0,5"></TextBlock>
                <DockPanel x:Name="GroupRadioButton" >
                    <StackPanel DockPanel.Dock="Left" Width="240">
                        <ItemsControl ItemsSource="{Binding RadioButtons}">
                            <ItemsControl.ItemTemplate>
                                <DataTemplate>
                                    <RadioButton Content="{Binding Content}" IsChecked="{Binding IsCheck}" GroupName="RadioButtons"
                                                 Command="{Binding DataContext.RadioCheckCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ItemsControl}}">
                                    </RadioButton>
                                </DataTemplate>
                            </ItemsControl.ItemTemplate>
                        </ItemsControl>
                    </StackPanel>

                    <StackPanel DockPanel.Dock="Right" Width="240" Orientation="Horizontal">
                        <TextBlock Text="{Binding RadioButton.Content,StringFormat='结果:\{0\}'}" ></TextBlock>
                    </StackPanel>
                </DockPanel>
            </StackPanel>

 

5、分分层数据模板 HierarchicalDataTemplate

string.format

元素绑定

TreeView 有个数据源TreeInfo,它的子项的数据源为 Tree 的 Childs 属性,而 display 的信息就是 HierarchicalDataTemplate 包裹的信息

<StackPanel Margin="10,0,0,50">
                <TextBlock Text="树" FontWeight="Bold" FontSize="12" Margin="0,5,0,5" ></TextBlock>
                <DockPanel x:Name="TreeButton" >
                    <StackPanel DockPanel.Dock="Left" Width="240">
                            <TreeView ItemsSource="{Binding TreeInfo}" x:Name="tree" BorderThickness="0">
                            <TreeView.ItemTemplate>
                                <HierarchicalDataTemplate ItemsSource="{Binding Children}">
                                    <TextBlock Text="{Binding NodeName}"/>
                                </HierarchicalDataTemplate>
                            </TreeView.ItemTemplate>
                        </TreeView>
                    </StackPanel>

                    <StackPanel DockPanel.Dock="Right" Width="240" Orientation="Horizontal" DataContext="{Binding SelectedItem,ElementName=tree}">
                            <TextBlock Text="结果:"/>
                        <TextBlock Text="{Binding NodeID,StringFormat='NodeID:\{0\}'}"  Margin="0,0,20,0"  />
                        <TextBlock Text="{Binding NodeName,StringFormat='NodeName:\{0\}'}"/>
                    </StackPanel>
                </DockPanel>
 </StackPanel>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值