显示时,WPF按钮内容为空

时间:2018-05-17 13:01:20

标签: c# wpf

我是C#/ WPF的新手。有一个定义了一个按钮的视图,当视图初始化时,按钮将显示从DataContext(viewmodel)获得的一组原因代码,一旦点击任何按钮,其上的代码将被保存并传递给下一个处理。

问:按钮上的文字是完全空的,但是可以捕获点击的代码,那么问题是关于绑定的?感谢。

XAML:

<thead></thead>

C#上的代码:

<Button x:Name="btnReason" Command="{Binding DataContext.SelectCommand, RelativeSource={RelativeSource AncestorType=v:View, Mode=FindAncestor}}" CommandParameter="{Binding}" Width="190" Height="190" >
    <Border Background="Transparent">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>

            <TextBlock x:Name="Reason" Grid.Row="0" Text="{Binding ?????}" TextWrapping="Wrap" />
        </Grid>
    </Border>
</Button>

1 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,那么textTextBlock的财产SelectedName应该绑定到CommandParameter

问题是您的DataContext绑定了{Binding}。这就是空Names语句的界限。这意味着您的命令处理程序始终在空检查后返回。

我还建议您将IEnumerable<string>职业从ObservableCollection<string>更改为iso_8601
ObservableCollection会在内部任何添加或删除项目时引发事件,WPF组件可以绑定到这些事件。