重新读取命令执行

时间:2015-10-20 19:55:30

标签: c# wpf xaml binding

我们说我有一个这样的按钮:

<Button x:Name="DeleteItem" Content="Delete item" Height="20" Width="100" Margin="0,0,10,0" VerticalAlignment="Top" HorizontalAlignment="Left" 
                Command="{Binding DeleteItem}" CommandParameter="{Binding Path=SelectedItem, ElementName=MainWindowObject}"/>

MainWindowObject是此按钮所在的窗口,因此CommandParameter绑定正在读取&#39; SelectedItem&#39;的值。我在代码隐藏中制作的属性,如下所示:

public object SelectedItem
    {
        get
        {
            switch (CurrentTab)
            {
                case TabType.Author:
                    return this.AuthorGrid.SelectedItem;
                default: // BookGrid is the default grid
                    return this.BookGrid.SelectedItem;
            }
        }
    }

基本上它应该获得网格当前选中的项目。我之所以没有直接使用&#34; Binding ElementName = Grid,Path = SelectedItem&#34;或类似的东西是因为它将在开关中选择的网格取决于&#39; CurrentTab&#39; property,这是另一个属性,告诉我哪个TabItem是TabControl中的活动TabItem。

问题我所拥有的是该程序会读取&#39; SelectedItem&#39;在启动时输入一次值,每次调用Command时它都会使用那个旧的陈旧值。我需要的是重新运行&#39; SelectedItem&#39;每次命令运行时,属性都会获得一个新的新值。

所以基本上我需要知道每次调用Command时如何动态更新绑定的值。任何人都知道我如何能够以声明的方式做出类似的事情,而不会在我的代码隐藏中造成混乱?

0 个答案:

没有答案