【问题标题】:How do I access the bound value of a Button?如何访问按钮的绑定值?
【发布时间】:2011-07-05 11:50:54
【问题描述】:

我有以下 XAML

<Window.Resources>
    <DataTemplate x:Key="SelectButtonColumnDataTemplate">
        <Button Content="Select" Command="{Binding SelectItemCommand}" Click="SelectButtonClick" />
    </DataTemplate>
</Window.Resources>

<Grid x:Name="LayoutRoot">
<ListView x:Name="listFeedSearch" HorizontalAlignment="Left" Width="542.5" RenderTransformOrigin="0.5,0.5" ItemsSource="{Binding SearchCollection}">
    <ListView.RenderTransform>
        <TransformGroup>
            <ScaleTransform/>
            <SkewTransform/>                
            <RotateTransform/>                
            <TranslateTransform/>            
            </TransformGroup>        
            </ListView.RenderTransform>        
    <ListView.View>            
        <GridView>                
            <GridViewColumn Width="150" Header="Feed Name" x:Name="listFeedSearchName" DisplayMemberBinding="{Binding FeedName}"  />                
            <GridViewColumn Width="280" Header="Feed Address" x:Name="listFeedSearchAddress" DisplayMemberBinding="{Binding FeedUrl}" />                
            <GridViewColumn Width="100" Header=" " CellTemplate="{StaticResource SelectButtonColumnDataTemplate}" />            
        </GridView>        
        </ListView.View>    
</ListView>     
</Grid>

添加以下事件处理程序:

private void SelectButtonClick(object sender, RoutedEventArgs e)
        {

        }

我想做的是输出行单独的绑定值。

我会怎么做,我知道它是这样的:

var data = (sender as Button)...

谢谢

【问题讨论】:

    标签: c# wpf data-binding event-handling


    【解决方案1】:

    如果您将按钮 CommandParameter 设置为(感谢 Bolu):

    "{Binding}"
    

    然后下面的代码将检索当前单击的对象并显示一个消息框。其中 foo 是用于填充 gridview 的类

     public class foo
     {
        string FeedName {get;set;}
        string FeedUrl {get;set;}
     }
    
     public void InitialiseListView(List<Foo> Items)
     {
        listFeedSearch.ItemsSource = Items;
     }
    
     private void SelectButtonClick(object sender, RoutedEventArgs e)
     {
        foo b = (foo)(sender as Button).CommandParameter;
    
        string s = string.format("Name: {0} URL: {1}",b.FeedName,b.FeedUrl);
        MessageBox.Show(s);
    }
    

    【讨论】:

    • foo 是数据来自的类的名称,例如我有课。在我的示例中,列表的 itemsource 设置为“ List ”,我将编辑我的帖子以更好地展示这一点
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 2020-06-15
      • 2020-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-05
      相关资源
      最近更新 更多