欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

WPF 绑定

程序员文章站 2022-06-07 18:01:48
...

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

string.format

WPF 绑定

异步更新数据

  <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

WPF 绑定

<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

WPF 绑定

元素绑定

WPF 绑定

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

WPF 绑定

<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>

 

相关标签: WPF 编程宝典